是否可以从所有FxCop分析中排除完整的名称空间,同时仍然使用SuppressMessageAttribute
分析程序集的其余部分?从FxCop代码分析中排除完整的命名空间?
在我目前的情况下,我有一堆由LINQ to SQL生成的类,这会导致很多FxCop问题,显然,我不会修改所有这些以匹配FxCop标准,因为很多修改会如果我重新生成了课程,我会走了。
我知道FxCop有一个项目选项来抑制生成的代码的分析,但它似乎没有认识到由LINQ 2 SQL创建的实体和上下文类作为生成的代码。
是否可以从所有FxCop分析中排除完整的名称空间,同时仍然使用SuppressMessageAttribute
分析程序集的其余部分?从FxCop代码分析中排除完整的命名空间?
在我目前的情况下,我有一堆由LINQ to SQL生成的类,这会导致很多FxCop问题,显然,我不会修改所有这些以匹配FxCop标准,因为很多修改会如果我重新生成了课程,我会走了。
我知道FxCop有一个项目选项来抑制生成的代码的分析,但它似乎没有认识到由LINQ 2 SQL创建的实体和上下文类作为生成的代码。
如果用[GeneratedCode]
属性标记你的类,你可以使用/ ignoregeneratedcode国旗的FxCop在这个MSDN职位描述:
FAQ: How do I prevent FxCop from firing warnings against generated code
您可能需要添加一个新的代码文件和实施新的部分课程也将属性添加到类:
[GeneratedCode]
public partial class MainDataContext { }
只要确保你添加的一切,当你创建新的文件正确的命名空间。
使用生成的代码属性,继承代码分析小组的blog post。
这在命名空间的顶部应该做的伎俩:在项目的根GlobalSuppressions.vb
[GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "9.0.0.0")]
<Assembly: SuppressMessage("Microsoft.Design", _
"CA1020:AvoidNamespacesWithFewTypes", _
Scope:="namespace", _
Target:="Missico.IO")>
PUT语句。
我所拥有的只是VB示例。
对于VS 2010代码分析中的许多代码生成警告,这不起作用:在名称空间级似乎不能被抑制。但有另一种选择:http://stackoverflow.com/questions/2221881/code-analysis-on-a-code-generator-generated-file-how-to-suppress-warnings/2739791#2739791 – Richard 2010-04-29 18:29:53
添加一个[GeneratedCode] attribute
的类。
编辑:我的意思是部分类具有相同的名称,由其他答案解释。
这是一个确切的重复,因为另一个问题也是关于Linq-to-SQL;但我认为应该合并答案,并保留搜索能力的存根。 – 2010-09-01 14:37:08