如何:使用双工协定访问服务
Windows Communication Foundation (WCF) 的一个功能是可以创建使用双工消息传递模式的服务。此模式允许服务通过回调与客户端进行通信。本主题演示在实现回调接口的客户端类中创建 WCF 客户端的步骤。
双向绑定向服务公开客户端的 IP 地址。客户端应使用安全来确保仅连接到自己信任的服务。
有关创建基本 WCF 服务和客户端的教程,请参见 入门教程。
访问双工服务
创建包含两个接口的服务。第一个接口用于服务,第二个接口用于回调。有关 创建双工服务的更多信息,请参见如何:创建双工协定。
运行该服务。
使用 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 客户端的一个实例。该构造函数的第二个参数是配置文件中找到的终结点的名称。
CalculatorDuplexClient wcfClient = new CalculatorDuplexClient(site, "default")
Dim wcfClient As New CalculatorDuplexClient(site, "default")
根据需要调用 WCF 客户端的方法。
示例
下面的代码示例演示如何创建一个访问双工协定的客户端类。
安全
另请参见
任务
如何:创建双工协定
如何:创建 Windows Communication Foundation 客户端
如何:使用 ChannelFactory