是否可以從所有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