如何:使用双工协定访问服务

Windows Communication Foundation (WCF) 的一个功能是可以创建使用双工消息传递模式的服务。此模式允许服务通过回调与客户端进行通信。本主题演示在实现回调接口的客户端类中创建 WCF 客户端的步骤。

双向绑定向服务公开客户端的 IP 地址。客户端应使用安全来确保仅连接到自己信任的服务。

有关创建基本 WCF 服务和客户端的教程,请参见 入门教程

访问双工服务

  1. 创建包含两个接口的服务。第一个接口用于服务,第二个接口用于回调。有关 创建双工服务的更多信息,请参见如何:创建双工协定

  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 客户端的一个实例。该构造函数的第二个参数是配置文件中找到的终结点的名称。

    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)