我可以在全球范围内抑制违反FX Cop代码分析的行为吗?

时间:2020-03-05 18:56:05  来源:igfitidea点击:

当我们使用Visual Studio的代码分析(FxCop)并希望隐藏消息时,有3个选项。

  • 禁止代码冲突。
  • 禁止GlobalSupression.cs文件中的冲突。
  • 在项目文件中禁用违规检查(通过Project-> Properties-> Code Analysic)。

签入Source Control时,很难检查后面的内容,也很难了解所有禁用的违规情况。因此,我们想使用选项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属性抑制多个冲突。显然,这是设计使然。

我同意,有时可能会很烦人,但我不能说我不同意这个决定,因为该属性是他们强迫我们说"是的,我知道我在做什么"的方式,应该在视具体情况而定。