WCF客户端应释放InnerChannel

本文关键字:InnerChannel 释放 客户端 WCF | 更新日期: 2023-09-27 18:00:27

是否手动处理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()

我有点困惑-任何帮助都很感激

WCF客户端应释放InnerChannel

无需显式处理客户端的InnerChannel。当您在客户端上调用Close时,它将关闭并为您处理InnerChannel

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

或者你可以使用你的客户端与使用声明

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