【问题标题】:How can I manually create a Silverlight PollingDuplex client/proxy?如何手动创建 Silverlight PollingDuplex 客户端/代理?
【发布时间】:2011-11-14 13:53:33
【问题描述】:

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

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

我想为 Silverlight PollingDuplex 客户端做类似的事情。

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

有人试过吗?甚至可能吗?

【问题讨论】:

    标签: c# .net silverlight wcf pollingduplexhttpbinding


    【解决方案1】:

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

    【讨论】:

    • 太棒了,谢谢卡洛斯。只是出于兴趣,还有其他我应该注意的潜在陷阱吗?
    • 没有特定于DuplexChannelFactory 本身;添加服务引用(DuplexChannelBase 的子类)生成的代理等同于DuplexChannelFactory.CreateChannel() 创建的代理。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-16
    • 2012-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多