当您使用Visual Studio的代码分析(FxCop),并且想要抑制消息时,有3个选项.
在代码中抑制违规.
抑制GlobalSupression.cs文件中的违规.
禁用项目文件中的违规检查(通过项目 - >属性 - >代码分析).
在签入源代码管理时很难检查后者,并且很难概述所有禁用的违规行为.所以我们想使用选项2.
选项1和2的问题是每次违规都会得到一条抑制线.例如:
[assembly: SuppressMessage("Microsoft.Design", "CA1020:AvoidNamespacesWithFewTypes", Scope = "namespace", Target = "Company.Project.Namespace2")] [assembly: SuppressMessage("Microsoft.Design", "CA1020:AvoidNamespacesWithFewTypes", Scope = "namespace", Target = "Company.Project.Namespace1")]
我们很乐意在GlobalSuppressions.cs上做这样的事情:
[assembly: SuppressMessage("Microsoft.Design", "CA1020:AvoidNamespacesWithFewTypes")]
但这可能吗?
官方不支持使用单个SuppressMessage属性抑制多个违规.显然,这是设计的.
我同意,有时可能会讨厌,但我不能说我不同意这个决定,因为这个属性是他们强迫你说"是的,我知道我在做什么"的方式,应该在个案基础.