我有一个关于CA2000警告的小问题。在我设置为启动项目的项目中,我收到了这个警告,尽管它不应该发生。
背景:我在.NET 3.5的项目中使用Visual Studio2010。启动项目是一个WPF应用程序。
在类中,App如下所示:
public partial class App : System.Windows.Application {
/// <summary>
/// Application Entry Point.
/// </summary>
[System.STAThreadAttribute()]
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
public static void Main() {
AutoTester.App app = new AutoTester.App();
app.Run();
}
}警告说:
警告1 CA2000 : Microsoft.Reliability :在方法“”App.Main()“”中,请在对对象“”CA2000“”的所有引用都超出范围之前对该对象调用System.IDisposable.Dispose。“”C:\Projects\Freelance\svn\AutoTester\Application\Applications\AutoTester\obj\x86\Debug\App.g.cs 47 AutoTester
可以看到,警告出现在App.g.cs中,它是自动生成的文件。在项目属性中,我已经停用了自动生成文件的代码分析。“抑制来自自动生成代码的结果”。因此,这个警告应该不会出现,对吧?
现在我的问题是,我不能在本地隐藏警告,因为代码将被覆盖。此外,我不想为它制定一个全局规则,因为我不想停用CA2000。
有没有人遇到过类似的问题,或者知道这里出了什么问题?
祝你好运,克里斯蒂安
发布于 2011-02-15 17:35:21
“来自自动生成代码的抑制结果”表示不显示来自自动生成的代码的结果。Visual Studio知道只有当代码包含GeneratedCodeAttribute (请参见here)时,代码才是由第三方生成的。显然,创建代码的工具没有添加该属性。
您可以尝试创建App的另一个分部类,并将属性放在那里:
[GeneratedCode("CodeGenerator", "1.0.0.0")]
public partial class App
{
}https://stackoverflow.com/questions/5001589
复制相似问题