首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >代码分析警告不应发生的CA2000

代码分析警告不应发生的CA2000
EN

Stack Overflow用户
提问于 2011-02-15 17:05:07
回答 1查看 975关注 0票数 3

我有一个关于CA2000警告的小问题。在我设置为启动项目的项目中,我收到了这个警告,尽管它不应该发生。

背景:我在.NET 3.5的项目中使用Visual Studio2010。启动项目是一个WPF应用程序。

在类中,App如下所示:

代码语言:javascript
复制
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。

有没有人遇到过类似的问题,或者知道这里出了什么问题?

祝你好运,克里斯蒂安

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-02-15 17:35:21

“来自自动生成代码的抑制结果”表示不显示来自自动生成的代码的结果。Visual Studio知道只有当代码包含GeneratedCodeAttribute (请参见here)时,代码才是由第三方生成的。显然,创建代码的工具没有添加该属性。

您可以尝试创建App的另一个分部类,并将属性放在那里:

代码语言:javascript
复制
[GeneratedCode("CodeGenerator", "1.0.0.0")]
public partial class App 
{
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5001589

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档