我一直在研究 WPF 应用程序的几个源代码,并且到处都看到了 SupressMessage 属性。属性的描述现在对我来说非常模糊。“禁止报告特定的静态分析工具违反规则,允许对单个代码工件进行多次禁止。” 这个属性有什么用,它的实际用途是什么?
1 回答
当您将代码分析应用到您的项目时,您有时会收到您想要忽略的警告,因为警告是误报,或者因为您的代码的特定部分可以违反代码分析规则。
您可以使用SuppressMessageAttribute来做到这一点。现在代码分析已内置到 Visual Studio 的“更高”SKU 中,但以前您必须使用名为FxCop的工具来执行分析。
通常,当您想忽略警告时,您有三个选项:
您可以从用于分析代码的规则集中删除该规则。只有当你真的不关心规则时,你才应该这样做。
您可以在项目范围的抑制文件中抑制警告,该文件通常
GlobalSuppressions.cs
使用SuppressMessageAttribute
. 这将允许您将所有抑制保留在单个文件中,但会使特定抑制与一段代码相关联变得有些困难。您可以使用
SuppressMessageAttribute
. 这在代码和抑制之间建立了清晰的联系,但也给代码带来了额外的信息。请注意,某些警告只能在全局抑制文件中被抑制,因为它们与特定的代码段无关。
当您单击代码分析警告上的操作下拉菜单时,最后两个选项可直接在 Visual Studio 中使用。当您使用 忽略警告时,SuppressMessageAttribute
您可以为 提供一个值Justification
。这样做可以让您和其他开发人员在稍后的时间点了解警告被禁止的原因。
如果您因为代码中有一些特殊的单词或缩写而收到有关拼写的警告,您可能不应该取消警告,而是为您的项目创建自定义代码分析字典。
对代码进行代码分析不仅可以提高代码的质量,还可以在此过程中学到一些东西。