如何处置System.ServiceModel.ClientBase <TChannel>?
我正在使用扩展ClientBase <>的类:
interface IService {}
class MyServiceClient : ClientBase<IService> {}
我遇到的问题是FxCop抱怨MyServiceClient作为成员变量的类也应该实现IDisposable并处置MyServiceClient。
ClientBase具有Dispose()的显式实现,这意味着一个简单的MyServiceClient.Dispose()不能编译。 我必须明确地投到IDisposable。 这是为什么? 这是一个信号,我不应该使用Dispose()? 我应该使用Close()吗?
在关闭和处置 - 要调用? 建议Close和Dispose应该有相同的实现。 这是一个示例包装类(用法),它在Dispose函数中调用Close。 所以调用Close看起来很好。
我使用bloc封装了我的Base继承者,并且它可以工作。 喜欢这个:
using (var someClient = new SomeClient(_netTcpBinding,_endpointAddress))
{
return someClient.SomeMethod();
}
但是当我打开cmd并输入netstat -a -n -p TCP时,我看到了
我在这里找到的答案是http://sahilmalik.blogspot.ru/2005/11/sockets-and-timewait.html,我重写了我的代码,就像在这种情况下http://marcgravell.blogspot.ru/2008/11/dontdontuse -using.html
链接地址: http://www.djcxy.com/p/54033.html上一篇: How to dispose of a System.ServiceModel.ClientBase<TChannel>?