在工作中,我找到了一个帮助程序类来管理WCF服务,该服务实现了IDisposable并具有一个派生自System.ServiceModel.ClientBase的ServiceAgent。 Dispose()方法关闭所有打开的WCF服务。该帮助器公开了将调用包装到ServiceAgent的方法中的方法。每种方法都建立在该模式上:IDisposable和WCF
public void WCFMethod1()
{
using(this)
{
this.ServiceAgent.WCFMethod1();
}
}
public override void Dispose()
{
try
{
this.ServiceAgent.Close();
}
catch
{
this.ServiceAgent.Abort();
}
finally
{
this.ServiceAgent = null;
}
}
下面是问题:使用(这)一个良好的做法?
它是解决WCF错误/错误代码的解决方法。阅读更多在http://geekswithblogs.net/bcaraway/archive/2008/07/06/123622.aspx – Rohit 2011-03-21 09:06:49
不,它不是一个工作的实施。 * Dispose()*应该清理“* WCFMethod *”类并且不关闭服务。正如安德烈和帕维尔所说,这种做法令人困惑。当“* Dispose()*”被调用时,我不希望再使用这个对象,因为它应该被丢弃(根据定义,它可以随时由GC清理) – 2011-07-12 08:27:07