如何手动创建Silverlight PollingDuplex客户端/代理?



有很多材料解释为什么使用svcutil.exe(或'add service reference')不好——缺乏可测试性,紧密耦合等。手动为一个简单的服务创建一个客户端代理是很简单的,你只需要手动创建你的接口和创建一个通道:

IMessageServiceAsync service = new ChannelFactory<IMessageServiceAsync>("BasicHttpBinding_IMessageEndpoint").CreateChannel(); 

我想做一些类似的事情,但对于Silverlight PollingDuplex客户端。

这看起来更困难-生成的客户端继承自System.ServiceModel.DuplexClientBase -我假设我手动创建的客户端也需要?或者有没有一种方法可以在不实现这个基类的情况下连接所有客户端Duplex回调功能?

有人试过吗?这可能吗?

这是可能的-您可以使用DuplexChannelFactory<T>类以类似于示例中的ChannelFactory<T>的方式创建代理,但您需要传递一个额外的参数(键入InstanceContext),该参数将包含用于接收来自服务器的消息的回调接口的实现。

相关内容

  • 没有找到相关文章

最新更新