![](/img/trans.png)
[英]CA2000 : Microsoft.Reliability object is not disposed along all exception paths
[英]CA2000: object not disposed along all exception paths
盡管之前已在此處討論過主題,但建議的解決方案似乎不起作用..
我的表單應用程序中有一個按鈕單擊回調方法,它顯示了一個文件夾選擇器對話框:
private void ButtonSelectReporterFolderClick(object sender, EventArgs e)
{
using (var dialog = new FolderBrowserDialog()) // causes warning
{
if (dialog.ShowDialog() == DialogResult.OK)
{
this.boxReporterFolderPath.Text = dialog.SelectedPath;
}
}
}
這會產生一個警告:
CA2000: Microsoft.Reliability: In method 'MainWindow.ButtonSelectReporterFolderClick(object, EventArgs)', object '<>g__initLocal' is not disposed along all exception paths. Call System.IDisposable.Dispose on object '<>g__initLocal' before all references to it are out of scope.
我還嘗試使用try
- finally
塊甚至調用 dialog.Dispose 沒有任何塊,一切都無濟於事 - 警告仍然存在,始終在初始化行。
警告不是因為未釋放 FolderBrowserDialog,而是因為它有一些實現 IDisposable 接口的公共成員,而您沒有單獨釋放它們。 當然,FolderBrowserDialog object 知道如何處理它的依賴項,但 FxCop 無法知道,所以它會發出警告。 在你的情況下忽略警告。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.