WCF duplex 简单实例
2012-10-29 19:58
204 查看
1.定义两个接口
//客户端调用
//回调接口,服务器调用客户端代码,这个接口由客户端实现
2.服务器实现接口
3,客户端添加服务引用,实现callback接口
4.调用
//客户端调用
[ServiceContract(CallbackContract = typeof(IContractCallback))] public interface IContract { [OperationContract(IsOneWay = true)] void Foo(DataMember dt); }
//回调接口,服务器调用客户端代码,这个接口由客户端实现
[ServiceContract] public interface IContractCallback { [OperationContract(IsOneWay = true)] void OnFooCallback(); }
2.服务器实现接口
[DataContract] public class DataMember { [DataMember(IsRequired = true)] public int Id; [DataMember(IsRequired = true)] public string Name; } public class Service2 : IContract { [OperationBehavior(TransactionScopeRequired=true)] public void Foo(DataMember dt) { //do something //... //call back,调用客户端的实现 var callback = OperationContext.Current.GetCallbackChannel<IContractCallback>(); callback.OnFooCallback(); } }
3,客户端添加服务引用,实现callback接口
class MyCallback : IContractCallback { public void OnFooCallback() { Console.WriteLine("call back from server"); } }
4.调用
var instance = new MyCallback(); InstanceContext instanceContext = new InstanceContext(instance); ServiceReference2.ContractClient client = new ServiceReference2.ContractClient(instanceContext); client.Open(); client.Foo(new ServiceReference2.DataMember() { Id = 1, Name = "111" }); Thread.Sleep(2000);//之所以休眠2s再关闭连接是等待服务器回调结束 client.Close(); Console.ReadKey();
相关文章推荐
- WCF的简单实例(手写代码实现)--客户端
- WCF寄宿(Host)之自我寄宿(Self-Hosting)简单实例【Windows应用程序宿主】
- 30.Silverlight中创建一个最简单的WCF RIA Services访问数据库实例
- [WCF REST] 一个简单的REST服务实例
- 一个简单的WCF实例
- WCF揭秘——简单的WCF开发实例
- WCF简单实例(VS2010自动生成)--服务端
- 如何创建一个简单的基于OleTx协议的WCF事务实例
- 简单的实例来理解WCF 数据服务
- 【转】一个简单的WCF回调实例
- 【WCF】最简单的WCF实例
- WCF简单实例(VS2010自动生成)--客户端
- 一个简单的WCF开发实例
- WCF简单教程(7) 并发模型与实例模型 推荐
- 简单的WCF实例
- (C#)一个WCF简单实例
- WCF 学习总结1 -- 简单实例
- WCF 学习总结1 -- 简单实例 (系列文章)
- (C#)一个WCF简单实例