当您使用 Visual Studio 的代码分析 (FxCop) 并想要抑制消息时,有 3 个选项。
- 禁止代码中的违规行为。
- 禁止 GlobalSupression.cs 文件中的违规行为。
- 在项目文件中禁用违规检查(通过项目 -> 属性 -> 代码分析)。
在 checkin 源代码管理时,后者很难审查,并且很难概述所有已禁用的违规行为。所以我们想使用选项 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 属性抑制多个违规行为。显然,这是设计使然。
我同意,有时可能会很烦人,但我不能说我不同意这个决定,因为该属性是他们强制你说“是的,我知道我在做什么”的方式,这应该根据具体情况进行评估。
关于.net - 我可以在全局范围内抑制 FX Cop 代码分析违规行为吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72832/