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

标签 c# .net silverlight wcf pollingduplexhttpbinding

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

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

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

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

有人试过吗?有可能吗?

最佳答案

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

关于c# - 如何手动创建 Silverlight PollingDuplex 客户端/代理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8122591/

相关文章:

c# - 开放泛型的 DI 绑定(bind)是一种反模式吗?

wpf - MVVM- View 模型- View 模型通信

.net - 可移植类库被视为文件程序集引用

c# - Redis 因内存不足而中止

c# - ASP.NET Core 中的 MD5CryptoServiceProvider

c# - 单个事务中的多线程

.net - 如何使 DataGridCheckBoxColumn 可编辑而不需要额外的点击?

.net - 在包含计数的子查询上使用左连接的 Linq

c# - 如何使用 nhibernate SchemaUpdate 功能更改列

silverlight 和 DataContractSurrogates 中都存在类型