WCF客户端应该处理InnerChannel吗?

时间:2013-02-22 12:06:42

标签: c# wcf

Innerchannel对象是否需要手动处理?

var client = new MyClient();
client.CallServer();
client.InnerChannel.Dispose()
client.Close()

还是这个?

var client = new MyClient();
client.CallServer();
client.Close()

BaseClient<T>类实现了IDisposable - 但它是如此明确的

例如:void IDisposable.Dispose()

这是否意味着我应该在客户端上手动调用Dispose()

我有点困惑 - 感谢任何帮助

1 个答案:

答案 0 :(得分:0)

无需明确处置客户端的InnerChannel。当您在客户上致电Close时,它会关闭并为您处理InnerChannel

您可以在客户端上手动呼叫Dispose,因为它会调用您客户端的Close方法。 您唯一需要做的就是将您的客户分配到IDisposable。否则,您无法直接在客户端上调用Dispose。

或者您可以将您的客户端与using语句一起使用

using (var client = new MyClient()) {
  client.CallServer();
}