方法 : 双方向コントラクトを使用してサービスにアクセスする

Windows Communication Foundation (WCF) の機能の 1 つに、双方向のメッセージング パターンを使用するサービスを作成する機能があります。双方向のメッセージング パターンを使用するサービスは、コールバックを通じてクライアントと通信できます。ここでは、コールバック インターフェイスを実装するクライアント クラス内に WCF クライアントを作成する手順を示します。

二重バインディングでは、クライアントの IP アドレスをサービスに公開します。クライアントは、セキュリティを使用して信頼するサービスだけに接続できるようにする必要があります。

WCF の基本的なサービスとクライアントの作成方法に関するチュートリアルについては、「チュートリアル入門」を参照してください。

双方向サービスにアクセスするには

  1. 2 つのインターフェイスを含むサービスを作成します。1 つ目のインターフェイスはサービスに使用し、2 つ目のインターフェイスはコールバックに使用します。双方向サービスの作成方法詳細については、 、「方法 : 双方向コントラクトを作成する」を参照してください。

  2. サービスを実行します。

  3. ServiceModel Metadata Utility Tool (Svcutil.exe) を使用して、クライアントのコントラクト (インターフェイス) を生成します。これを実行する方法については、「方法 : Windows Communication Foundation クライアントを作成する」を参照してください。

  4. 次の例に示すように、クライアント クラスにコールバック インターフェイスを実装します。

    public class CallbackHandler : ICalculatorDuplexCallback
    {
        public void Result(double result)
        {
            Console.WriteLine("Result ({0})", result);
        }
        public void Equation(string equation)
        {
            Console.WriteLine("Equation({0})", equation);
        }
    }
    
    Public Class CallbackHandler 
    Implements ICalculatorDuplexCallback
       Public Sub Result (ByVal result As Double)
          Console.WriteLine("Result ({0})", result)
       End Sub
        Public Sub Equation(ByVal equation As String)
            Console.Writeline("Equation({0})", equation)
        End Sub
    End Class
    
  5. InstanceContext クラスのインスタンスを作成します。コンストラクタには、クライアント クラスのインスタンスが必要です。

    InstanceContext site = new InstanceContext(new CallbackHandler());
    
    Dim site As InstanceContext = New InstanceContext(new CallbackHandler())
    
  6. InstanceContext オブジェクトを必要とするコンストラクタを使用して、WCF クライアントのインスタンスを作成します。コンストラクタの 2 番目のパラメータは、構成ファイルに含まれるエンドポイントの名前です。

    CalculatorDuplexClient wcfClient = 
    new CalculatorDuplexClient(site, "default")
    
    Dim wcfClient As New CalculatorDuplexClient(site, "default")
    
  7. 必要に応じて、WCF クライアントのメソッドを呼び出します。

双方向コントラクトにアクセスするクライアント クラスを作成する方法を次のコード例に示します。

セキュリティ

関連項目

タスク

方法 : 双方向コントラクトを作成する
方法 : Windows Communication Foundation クライアントを作成する
方法 : ChannelFactory を使用する

その他の技術情報

チュートリアル入門
ServiceModel Metadata Utility Tool (Svcutil.exe)