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

经过长期学习WCF,自己仍是有许多的收成的,现在就把我的常识财富共享给咱们一些,让咱们也充分一些,这儿咱们先就界说WCF回调契约开端吧。一个服务契约最多只能包括一个回调契约。经过ServiceContract特性,能够指定回调契约:

五分钟让你深化了解WCF回调契约(wcf数据契约)  WCF回调契约 第1张

  1. interfaceISomeCallbackContract
  2. {
  3. [OperationContract]
  4. voidOnCallback();
  5. }
  6. [ServiceContract(CallbackContract=typeof(ISomeCallbackContract))]
  7. interfaceIMyContract
  8. {
  9. [OperationContract]
  10. intDoSomething();
  11. }

#T#WCF回调契约无须符号ServiceContract特性,但是在回调契约中有必要为服务的操作符号OperationContract特性。在导入回调契约的元数据中,回调契约以Callback结束。为简洁起见,咱们在界说回调契约时,***以Callback为后缀。为了保管一个回调目标,客户端需求实例化回调目标,然后经过它创立一个上下文目标 ,留意,假如使用了WCF回调契约,则客户端生成的署理类有必要承继自DuplexClientBase署理类,这是一个专门的支撑双向通信的署理类。留意,该类的结构函数参数既能够接纳InstanceContext类型的上下文目标,也能够接纳object类型的回调契约目标。

  1. classMyCallback:IMyContractCallback
  2. {
  3. publicvoidOnCallback()
  4. {...}
  5. }
  6. IMyContractCallbackcallback=newMyCallback();
  7. InstanceContextcontext=newInstanceContext(callback);

假定客户端的署理类为MyContractClient,则在客户端就能够经过上下文目标取得署理目标:

  1. MyContractClientproxy=newMyContractClient(context);
转载请说明出处
知优网 » 五分钟让你深化了解WCF回调契约(wcf数据契约)

发表评论

您需要后才能发表评论