方法 : 双方向コントラクトを使用してサービスにアクセスする
Windows Communication Foundation (WCF) の機能の 1 つに、双方向のメッセージング パターンを使用するサービスを作成する機能があります。双方向のメッセージング パターンを使用するサービスは、コールバックを通じてクライアントと通信できます。ここでは、コールバック インターフェイスを実装するクライアント クラス内に WCF クライアントを作成する手順を示します。
二重バインディングでは、クライアントの IP アドレスをサービスに公開します。クライアントは、セキュリティを使用して信頼するサービスだけに接続できるようにする必要があります。
WCF の基本的なサービスとクライアントの作成方法に関するチュートリアルについては、「チュートリアル入門」を参照してください。
双方向サービスにアクセスするには
2 つのインターフェイスを含むサービスを作成します。1 つ目のインターフェイスはサービスに使用し、2 つ目のインターフェイスはコールバックに使用します。双方向サービスの作成方法詳細については、 、「方法 : 双方向コントラクトを作成する」を参照してください。
サービスを実行します。
ServiceModel Metadata Utility Tool (Svcutil.exe) を使用して、クライアントのコントラクト (インターフェイス) を生成します。これを実行する方法については、「方法 : Windows Communication Foundation クライアントを作成する」を参照してください。
次の例に示すように、クライアント クラスにコールバック インターフェイスを実装します。
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
InstanceContext クラスのインスタンスを作成します。コンストラクタには、クライアント クラスのインスタンスが必要です。
InstanceContext site = new InstanceContext(new CallbackHandler());
Dim site As InstanceContext = New InstanceContext(new CallbackHandler())
InstanceContext オブジェクトを必要とするコンストラクタを使用して、WCF クライアントのインスタンスを作成します。コンストラクタの 2 番目のパラメータは、構成ファイルに含まれるエンドポイントの名前です。
CalculatorDuplexClient wcfClient = new CalculatorDuplexClient(site, "default")
Dim wcfClient As New CalculatorDuplexClient(site, "default")
必要に応じて、WCF クライアントのメソッドを呼び出します。
例
双方向コントラクトにアクセスするクライアント クラスを作成する方法を次のコード例に示します。
セキュリティ
関連項目
タスク
方法 : 双方向コントラクトを作成する
方法 : Windows Communication Foundation クライアントを作成する
方法 : ChannelFactory を使用する