我有一个客户端/服务器应用程序,我正在从客户端删除服务引用。我跟着this article能够在没有它的情况下实现访问服务器功能。这很好。
我遇到的问题是服务引用能够生成函数的同步/异步版本(我们使用异步版本),而直接通过接口访问函数我们只能访问同步版。有没有办法在没有服务引用的情况下异步调用wcf服务函数?是否有唯一的方法来创建一个包装器,每次我想打电话时都会创建一个Task
?
这是用于访问服务功能的代码片段:
ChannelFactory<IService> channelFactory = null;
EndpointAddress endpointAddress = new EndpointAddress("http://localhost:4504" + "/MyService");
channelFactory = new ChannelFactory<IService >(binding, endpointAddress);
IService channel = channelFactory.CreateChannel();
var result = channel.MyFunction();
我想要的是能够var result = channel.MyFunctionAsync();
我也看了this回答,但是这将涉及为我们的界面中的每个函数创建代理,这些函数有数百个函数