加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – CA2000:未沿所有异常路径放置的对象

发布时间:2020-12-15 07:43:34 所属栏目:百科 来源:网络整理
导读:虽然之前已讨论过主题,但建议的解决方案似乎不起作用.. 我的表单应用程序中有一个按钮单击回调方法,它显示了一个文件夹选择器对话框: private void ButtonSelectReporterFolderClick(object sender,EventArgs e){ using (var dialog = new FolderBrowserDia
虽然之前已讨论过主题,但建议的解决方案似乎不起作用..

我的表单应用程序中有一个按钮单击回调方法,它显示了一个文件夹选择器对话框:

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:在方法’MainWindow.ButtonSelectReporterFolderClick(object,EventArgs)’中,对象’<> g__initLocal’未沿所有异常路径放置.在对所有引用超出范围之前,调用System.IDisposable.Dispose对象’<> g__initLocal’.

我也试过使用try-finally块甚至调用dialog.Dispose没有任何块,一切都无济于事 – 警告仍然存在,总是在初始化的行.

解决方法

警告不是因为没有处理FolderBrowserDialog,而是因为它有一些实现IDisposable接口的公共成员而你没有单独处理它们.当然,FolderBrowserDialog对象知道如何处理它的依赖关系,但FxCop无法知道它,因此它会发出警告.只需忽略您案例中的警告即可.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读