惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

WordPress大学
WordPress大学
V
V2EX
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Jina AI
Jina AI
小众软件
小众软件
量子位
博客园 - 三生石上(FineUI控件)
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - Franky
博客园_首页
IT之家
IT之家
S
SegmentFault 最新的问题
博客园 - 叶小钗
阮一峰的网络日志
阮一峰的网络日志
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 聂微东
T
Tailwind CSS Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
爱范儿
爱范儿
月光博客
月光博客
有赞技术团队
有赞技术团队
H
Help Net Security
云风的 BLOG
云风的 BLOG

博客园 - heart-in-sky

查询效率分析 svn权限 为IIS服务器添加扩展 oracle 查询历史语句 VS自带混乱器 AjaxPro组件实现前后台数据无刷新交互 - heart-in-sky - 博客园 使用 StateServer 持久保存 Session 会话状态 ! VSS管理 oracle管理 C#操作服务器文件 服务器操作 iis发布网站,域名指向 关于软件开发和模块接口设计之一些思考 oracle数据库同步 Oracle常用的数据库字段类型 vs快捷键 对象数组与DataTable互换 C#网络编程 系统库设计说明书(数据库字典)
WCF双工
heart-in-sky · 2009-12-14 · via 博客园 - heart-in-sky

1、必须使用支持双向通信的绑定如NetTcpBinding、NetNamedPipeBinding、WSDualHttpBinding

2、整个Contract在服务端定义(包括服务接口和回调接口);用 CallbackContract 为服务接口定义回调;服务接口在服务端实现,回调接口在客户端实现。

      例:

       [ServiceContract(CallbackContract = typeof(ISomeCallbackContract))]

3、服务端用 OperationContext.Current.GetCallbackChannel<T>()获取调用当前操作的客户端实例通道

       例:

ISomeCallbackContract callback = OperationContext.Current.GetCallbackChannel<ISomeCallbackContract>()

4、服务端获得客户端实例通道的对象以后就可以调用客户端方法

     例:

      callback.SomeCallbackMethod2();

5、客户端创建回调的对象并生成操作调用的上下文并由客户端代理对象传回服务端