WCF有一种方法可以将工厂伙伴检索到创建的渠道

时间:2012-09-12 18:19:59

标签: wcf channel channelfactory

我正在使用WCF在服务器应用和客户端应用之间创建连接。

因为我正在使用NetTcpBinding,所以我希望保持通过以下方式创建的频道:

T proxy = ChannelFactory<T>.CreateChannel();

我将代理实例带入我的应用程序以与服务器通信。在某个时刻,我用另一个工厂续订这个代理。但是我希望通过处理它来从第一家工厂释放资源。但我不想管理工厂并继续参考。

是否有一种方法可以让代理实例检索通道关联来处理它?

喜欢......

var commObj = (ICommunicationObject)proxy;
commObj.Factory.Dispose();

由于

1 个答案:

答案 0 :(得分:1)

不幸的是,这是不可能的,因为渠道和工厂没有联系。但我认为你的方法不正确。您应该保留对工厂的引用并根据需要创建Channel。在某些情况下,重复使用频道可能是个问题。通道可能出现故障,但内部工厂仍然有效。创建工厂有实际成本,而一些.net 3.5 SP1工厂内部存储在静态缓存中。