WCF技术内幕 第3章 (3)
双工消息交换模式 Duplex MEP
双工是指同时发送和接收消息。双工消息交换模式定义了一个允许接收者和发送者同时发送消息的操作集合,反之亦然。
双工消息交换模式与WSDL
与双工消息交换模式相关的WSDL包含两个操作:一个操作(SomeOperation)表示消息发送给接收者,另外一个操作(SomeCallbackOperation)表示消息从接收者回发给发送者。
双工消息交换模式与WCF契约
双工通信需要两个契约。习惯上,描述发送给接收应用程序的消息(和应答消息,如果有)的契约称为服务契约,描述接收者发送给发送者的契约称为回调契约。这两个契约通过服务契约的ServiceContractAttribute.CallbackContract属性关联。
//Clientusing System;using System.ServiceModel;using CallbackContract;using WcfService4;namespace SendClient{ class Program { static void Main(string[] args) { NetTcpBinding binding = new NetTcpBinding(); EndpointAddress address=new EndpointAddress(new Uri("net.tcp://localhost:5678/IServiceContract")); //Set callback instance class for InstanceContext InstanceContext context=new InstanceContext(new CallbackAPIs()); //Set a InstanceContext IServiceContract services = DuplexChannelFactory<IServiceContract>.CreateChannel(context, binding, address); services.Sum(100, 200); Console.ReadKey(); } }}
Reference: http://www.cnblogs.com/artech/archive/2007/03/02/661969.html