如何为双工服务添加WCF服务引用?

时间:2017-08-03 18:22:44

标签: c# .net web-services wcf webservice-client

我有一个带回调的WCF服务。我想创建一个客户端,但我想在Visual Studio中使用“添加服务引用”自动执行此操作。我能够发现该服务并添加它。我也可以更新服务参考。所以就在那里。问题在于从中创建客户端。

如果服务名称是(在服务引用中)“MyService”,,那么为正常(非回调)服务创建客户端将是:

var myService = new MyServiceClient();
var data = myService.GetData();
myService.Close();

但是如果服务实现了Callback接口,我怎么能这样做呢? 我必须添加上下文作为客户端的参数,如下所示:

InstanceContext context = new InstanceContext(????);
var myService = new MyServiceClient(context);
var data = myService.GetData();
myService.Close();

但!我必须将实现回调接口的客户端传递给InstanceContext。有没有办法快速添加回调的wcf服务客户端?

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

您必须创建一个回调处理程序:

public class MyServiceCallbackHandler : IMyServiceCallback
{
    public void Result(Data data)
    {
    }
}

并将其传递给InstanceContext

InstanceContext context = new InstanceContext(new MyServiceCallbackHandler());
var myService = new MyServiceClient(context);
var data = myService.GetData();
myService.Close();