簡體   English   中英

CA2000:object 未沿所有異常路徑配置

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM