本文主要讲解“如何服务WCF异步调用”。感兴趣的朋友不妨看看。本文介绍的方法简单、快速、实用。让边肖带你学习“如何服务WCF异步呼叫”!
我把服务契约的定义单独形成一个程序集,在客户端直接引用。但是,在这样的服务协定程序集中,没有异步方法的定义。因此,我需要在客户端修改服务定义,并添加异步操作方法。这无疑给服务合同的复用带来了障碍。至少,我们需要在客户端用异步方法维护一个服务契约。
幸运的是,当客户端决定使用WCF异步调用我设计的服务操作时,虽然客户端的服务契约接口需要修改,但不会影响服务器的契约定义。因此,服务器端的协定定义可以保持不变,而客户端的接口定义修改如下
[service contract]public interfaceidocumentsexplorerservice {[operation contract]StreamTransferDocument(document document);[operation contract(async pattern=true)]iasyncresultbegintinsferdocument(document document,AsyncCallbackcallback,objectasync state);StreamEndTransferDocument(IAsyncResultresult);}注意,在BeginTransferDocument()方法上,必须在OperationContractAttribute中将AsyncPattern属性值设置为true,因为它的默认值为false。
WCF异步调用方式如下:
basichtpbinding binding=new basichtpbinding();绑定。SendTimeout=时间跨度。从分钟(10);绑定。TransferMode=TransferMode。流式传输;绑定。MaxReceivedMessageSize=9223372036854775807;endpointaddress address=new endpointaddress(' http://localhost :8008/document explorers service ');channelfactory=new channelfactory(绑定,地址);m _ service=工厂。create CHannel();……IAsyncResultresult=m_service。BeginTransferDocument(单据,空,空);结果。AsyncWaitHandle . WaitOne();Streamstream=m_service。EndTransferDocument(结果);至此,相信大家对“如何对WCF异步调用进行服务操作”有了更深的理解,让我们来做一个实际操作吧!这是网站。更多相关内容,可以去相关渠道查询,关注我们,继续学习!
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/146008.html