vaibhavk12 Ответов: 1

Создание Службы Restful WCF


EvalService.в CS
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.Serialization;
using System.ServiceModel;
namespace CreateWcfServiceLibrary
{
    [DataContract]
    public class Eval
    {
        [DataMember]
        public string Submitter;
        [DataMember]
        public DateTime TimeSent;
        [DataMember]
        public string Comments;
    }

    [ServiceContract]
    public interface IEvalService
    {
        [OperationContract(IsOneWay=true)]
        void SubmitEval(Eval eval);
        [OperationContract]
        List<eval> GetList();
    }

    [ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)]
    class EvalService: IEvalService     
    {
        List<eval> evals = new List<eval>();
        #region IEvalService Members

        public void SubmitEval(Eval eval)
        {
            evals.Add(eval);
        }

        public List<eval> GetList()
        {
            return evals;
        }

        #endregion
    }
}

Клиент
Программы.в CS
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ClientConsole.EvalServiceReference;

namespace ClientConsole
{
    class Program
    {
        static void Main(string[] args)
        {
            EvalServiceClient client = new EvalServiceClient("WSHttpBinding_IEvalService");

            Eval evalItems = new Eval();
            evalItems.Comments = "This comment from Code.";
            evalItems.Submitter = "vaibhav";
            evalItems.TimeSent = DateTime.Now;
            client.SubmitEval(evalItems);

            Eval[] evals = client.GetList();
            foreach (Eval ev in evals)
            {
                Console.WriteLine(ev.Comments);
                Console.WriteLine(ev.Submitter);
                Console.WriteLine(ev.TimeSent);
                Console.ReadKey();
            }
        }
    }
}

Принимающий
ивал.ВПВ
<%@ ServiceHost Service="CreateWcfServiceLibrary.EvalService"  %>
Web.config
<pre lang="xml">&lt;system.serviceModel&gt;
    &lt;services&gt;
        &lt;service behaviorConfiguration=&quot;WcfServiceHost.Service1Behavior&quot; name=&quot;CreateWcfServiceLibrary.EvalService&quot;&gt;
            &lt;endpoint address=&quot;ws&quot; binding=&quot;wsHttpBinding&quot; contract=&quot;CreateWcfServiceLibrary.IEvalService&quot;&gt;
                &lt;identity&gt;
                    &lt;dns value=&quot;localhost&quot;/&gt;
                &lt;/identity&gt;
            &lt;/endpoint&gt;
            &lt;endpoint address=&quot;mex&quot; binding=&quot;mexHttpBinding&quot; contract=&quot;IMetadataExchange&quot;/&gt;
        &lt;/service&gt;
    &lt;/services&gt;
    &lt;behaviors&gt;
        &lt;serviceBehaviors&gt;
            &lt;behavior name=&quot;WcfServiceHost.Service1Behavior&quot;&gt;
                &lt;!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment --&gt;
                &lt;serviceMetadata httpGetEnabled=&quot;true&quot;/&gt;
                &lt;!-- To receive exception details in faults for debugging purposes, set the value below to true.  Set to false before deployment to avoid disclosing exception information --&gt;
                &lt;serviceDebug includeExceptionDetailInFaults=&quot;false&quot;/&gt;
            &lt;/behavior&gt;
        &lt;/serviceBehaviors&gt;
    &lt;/behaviors&gt;
&lt;/system.serviceModel&gt;</pre>

Espen Harlinn

А у вас неприятности именно какие?

1 Ответов

Рейтинг:
9

Espen Harlinn

Начните с того, что взгляните на: Руководство разработчика по стартовому набору WCF REST[^]

Дополнительную полезную информацию вы найдете здесь:Модель программирования WCF Web HTTP[^]

Одна вещь, которую я сразу заметил, заключается в том, что в дополнение к OperationContact вам нужно украсить методы с помощью С webget[^] или WebInvoke[^]

С уважением
Эспен Харлинн


Sandeep Mewara

Мои 5 ! Хороший ответ.

Espen Harlinn

Спасибо, Сандип :-D

VJ Reddy

Хороший ответ с хорошими рекомендациями. 5!

Espen Harlinn

Спасибо, ви-джей :-D

Abhinav S

5!

Manas Bhardwaj

Правильно +5