五分钟让你深入理解WCF回调契约

开发 后端
这里就WCF回调契约分析介绍,其实在WCF回调契约无须标记ServiceContract特性,但是在回调契约中必须为服务的操作标记OperationContract特性。

经过长时间学习WCF,本人还是有很多的收获的,现在就把我的知识财富分享给大家一些,让大家也充实一些,这里我们先就定义WCF回调契约开始吧。一个服务契约最多只能包含一个回调契约。通过ServiceContract特性,可以指定回调契约:

interface ISomeCallbackContract   
{   
[OperationContract]   
void OnCallback( );   
}   
 
[ServiceContract(CallbackContract = typeof(ISomeCallbackContract))]   
interface IMyContract   
{   
[OperationContract]   
intDoSomething( );   
}   
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.

#T#WCF回调契约无须标记ServiceContract特性,但是在回调契约中必须为服务的操作标记OperationContract特性。在导入回调契约的元数据中,回调契约以Callback结尾。为简便起见,我们在定义回调契约时,***以Callback为后缀。为了托管一个回调对象,客户端需要实例化回调对象,然后通过它创建一个上下文对象 ,注意,如果使用了WCF回调契约,则客户端生成的代理类必须继承自DuplexClientBase代理类,这是一个专门的支持双向通信的代理类。注意,该类的构造函数参数既可以接收InstanceContext类型的上下文对象,也可以接收object类型的回调契约对象。

class MyCallback : IMyContractCallback   
{   
public void OnCallback( )   
{...}   
}   
IMyContractCallback callback = new MyCallback( );   
InstanceContext context = new InstanceContext(callback);  
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.

假定客户端的代理类为MyContractClient,则在客户端就可以通过上下文对象获得代理对象:

MyContractClient proxy = new MyContractClient(context); 
  • 1.
责任编辑:田树 来源: 博客
相关推荐

2009-11-05 10:56:31

WCF通讯

2019-11-05 10:03:08

callback回调函数javascript

2009-10-29 11:39:52

ADO.NET连接池

2009-11-17 14:50:50

Oracle调优

2024-09-18 08:21:24

JavaScriptTypeScriptprototype

2024-07-30 14:09:19

装饰器Python代码

2009-11-06 10:25:34

WCF元数据交换

2010-03-01 15:12:53

WCF回调契约

2024-04-28 12:55:46

redis频道机制

2021-11-07 23:46:32

MySQLSQL索引

2023-07-26 07:11:50

LVM底层抽象

2011-08-08 09:22:10

Python

2009-11-09 17:40:33

WCF配置可靠性

2020-11-09 09:59:50

Ajax技术

2021-11-11 15:03:35

MySQLSQL索引

2024-07-12 09:00:00

2010-02-23 14:03:53

WCF契约回调

2023-12-06 08:48:36

Kubernetes组件

2024-02-21 21:19:18

切片Python语言

2009-11-06 09:39:40

WCF契约
点赞
收藏

51CTO技术栈公众号