2

有很多材料解释了为什么使用 svcutil.exe(或“添加服务引用”)不好 - 缺乏可测试性、紧密耦合等。为简单服务手动创建客户端代理很简单,您只需要手动创建接口和创建频道:

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

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

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

有没有人试过这个?甚至可能吗?

4

1 回答 1

2

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

于 2011-11-14T15:02:33.567 回答