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

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

专注于为中小企业提供做网站、成都网站制作服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业新平免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了上千多家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

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

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

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

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

 
 
  1. MyContractClient proxy = new MyContractClient(context); 

分享文章:五分钟让你深入理解WCF回调契约
文章位置:http://www.mswzjz.cn/qtweb/news6/52056.html

攀枝花网站建设、攀枝花网站运维推广公司-贝锐智能,是专注品牌与效果的网络营销公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 贝锐智能