2011-02-15 54 views
3

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

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

在类应用程序如下所示:

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()',叫了System.IDisposable。在所有对它的引用超出范围之前,在对象'app'上处理。 C:\ Projects \ Freelance \ svn \ AutoTester \ Application \ Applications \ AutoTester \ obj \ x86 \ Debug \ App.g.cs 47 AutoTester

可以看到,警告发生在App.g.cs中是一个自动生成的文件。在项目属性中,我已经停用了自动生成文件的代码分析。 “从自动生成的代码中获得结果”。因此,这个警告不应该发生,对吧?

现在我的问题是,我不能在本地压制警告,因为代码将被重写。另外,我不想在全球范围内制定规则,因为我不想停用CA2000。

有没有人遇到类似的问题或任何想法这里怎么了?

祝, 基督教

回答

2

“从自动生成的代码剿结果”表示从代码的结果是自动生成的未示出。 Visual Studio知道代码仅在第三方包含GeneratedCodeAttribute(请参阅here)时生成。通常,创建代码的工具不会添加该属性。

你可以尝试让另一部分类应用程序,并把属性有:

[GeneratedCode("CodeGenerator", "1.0.0.0")] 
public partial class App 
{ 
} 
+0

啊听起来很有趣。然而,这个文件是由VisualStudio创建的,这仍然很奇怪。这是当你创建一个新的项目(WPF应用程序)时会发生什么。我认为微软应该使用GeneratedCodeAttribute。我将尝试创建另一个WPF项目并查看会发生什么。 – Christian 2011-02-15 09:40:15

相关问题