-3

WCF で最初の例を作成しました。これまでのところ、サービスを作成し、ローカル マシン上のクライアントで使用することができました。WCF について初めて読んだとき、END POINTS についての説明をいくつか見ましたが、なぜそれが実際に使用されているのか理解できませんでした。以下は私のコードです。エンドポイントを使用する理由と、サンプルアプリケーションにエンドポイントを追加する方法を教えてください。

namespace MvcApplicationrazor.Services
{

    [ServiceContract]
    public interface IMyService
    {
        [OperationContract]
        string MyOperation1(string myValue);
        [OperationContract]
        string MyOperation2(DataContract1 dataContractValue);
        [OperationContract]
        string HelloWorld(string str);
    }

    [DataContract]
    public class DataContract1
    {
        string firstName;
        string lastName;

        [DataMember]
        public string FirstName
        {
            get { return firstName; }
            set { firstName = value; }
        }
        [DataMember]
        public string LastName
        {
            get { return lastName; }
            set { lastName = value; }
        }
    }
}


namespace MvcApplicationrazor.Services
{

    public class MyService : IMyService
    {
        public string MyOperation1(string myValue)
        {
            return "Hello: " + myValue;
        }
        public string MyOperation2(DataContract1 dataContractValue)
        {
            return "Hello: " + dataContractValue.FirstName;
        }
        public string HelloWorld(string str)
        {
            return "Helloworld from " + str;
        }


    }
}

クライアント:

 FirstServiceReference.MyServiceClient cc = new FirstServiceReference.MyServiceClient();
 string  a = cc.MyOperation1("chamara");
4

1 に答える 1

4

Windows Communication Foundation (WCF) サービスとのすべての通信は、サービスのエンドポイントを通じて行われます。エンドポイントは、クライアントが WCF サービスによって提供される機能にアクセスできるようにします。

各エンドポイントは、次の 4 つのプロパティで構成されます。

  • エンドポイントがある場所を示すアドレス。
  • クライアントがエンドポイントと通信する方法を指定するバインディング。
  • 利用可能な操作を識別するコントラクト。
  • エンドポイントのローカル実装の詳細を指定する一連の動作。

エンドポイントの構造

各エンドポイントは次のもので構成されます。

  • Address : アドレスはエンドポイントを一意に識別し、サービスの潜在的な利用者にその場所を伝えます。これは、EndpointAddress クラスによって WCF オブジェクト モデルで表されます。EndpointAddress クラスには以下が含まれます。

  • サービスのアドレスを表す Uri プロパティ。

  • サービスのセキュリティ ID とオプションのメッセージ ヘッダーのコレクションを表す Identity プロパティ。オプションのメッセージ ヘッダーは、エンドポイントを識別したりエンドポイントと対話したりするための追加の詳細なアドレス指定情報を提供するために使用されます。

    詳細については、エンドポイント アドレスの指定を参照してください。

  • バインディング: バインディングは、エンドポイントとの通信方法を指定します。これも:

    • 使用するトランスポート プロトコル (TCP や HTTP など)。

    • メッセージに使用するエンコード (テキストやバイナリなど)。

    • 必要なセキュリティ要件 (SSL または SOAP メッセージ セキュリティなど)。

    詳細については、「Windows Communication Foundation バインディングの概要」を参照してください。バインドは、抽象基本クラス Binding によって WCF オブジェクト モデルで表されます。ほとんどのシナリオでは、ユーザーはシステム提供のバインドのいずれかを使用できます。詳細については、システム提供のバインディングを参照してください。

  • コントラクト: コントラクトは、エンドポイントがクライアントに公開する機能の概要を示します。契約は以下を規定します。

    • クライアントが呼び出すことができる操作。

    • メッセージの形式。

    • 操作を呼び出すために必要な入力パラメーターまたはデータのタイプ。
    • クライアントが期待できる処理または応答メッセージのタイプ。
  • Behaviors : エンドポイントの動作を使用して、サービス エンドポイントのローカル動作をカスタマイズできます。エンドポイントの動作は、WCF ランタイムの構築プロセスに参加することでこれを実現します。エンドポイントの動作の例は ListenUri プロパティです。これにより、SOAP または Web サービス記述言語 (WSDL) アドレスとは異なるリッスン アドレスを指定できます。詳細については、ClientViaBehavior を参照してください。

于 2013-06-03T04:33:35.750 に答える