对象未设置虽然主题已经在这里讨论过,但提出的解决方案似乎不工作..CA2000:沿着所有的异常路径
我有一个按钮,点击回调方法在我的表格提出申请,显示一个文件夹选择对话框:
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.
我用也尝试- finally
块或甚至调用dialog.Dispose没有任何块,都无济于事 - 警告仍然存在,始终在初始化的行。
对不起,但我无法重现上述代码的CA2000警告。你确定它不是由其他东西引起的吗? –
不,我希望..你在适当的Windows窗体应用程序回调中运行它吗? – Efrain
即使将它作为按钮在香草Windows窗体可执行文件中的vanilla Windows窗体中单击事件处理程序时,我在该方法中也看不到CA2000违例。如果您将最低“repro”代码添加到新的Windows Forms应用程序,您是否看到违规行为? –