在工作中,我找到了一個幫助程序類來管理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