SupressMessage属性有什么用?

时间:2012-08-11 00:15:17

标签: c# .net

我一直在研究WPF应用程序的几个源代码,并在所有地方看到SupressMessage属性。我现在对属性的描述非常模糊。 “禁止报告特定的静态分析工具规则违规,允许对单个代码工件进行多次抑制。”这个属性是什么,它的实际用途是什么?

1 个答案:

答案 0 :(得分:6)

当您将code analysis应用于项目时,您有时会收到要忽略的警告,因为警告是误报,或者因为代码的特定部分违反代码分析规则。

您可以使用SuppressMessageAttribute执行此操作。现在,代码分析内置于Visual Studio的“更高”SKU中,但之前您必须使用名为 FxCop 的工具来执行分析。

通常,当您想忽略警告时,您有三个选项:

  • 您可以从用于分析代码的规则集中删除规则。如果你真的不关心规则,你应该这样做。

  • 您可以使用GlobalSuppressions.cs在通常名为SuppressMessageAttribute的项目范围的抑制文件中禁止显示警告。这将允许您在单个文件中维护所有抑制,但是使特定抑制与一段代码相关联变得有些困难。

  • 您可以使用SuppressMessageAttribute禁止源文件中出现警告。这在代码和抑制之间创建了一个清晰的链接,但也为代码提供了额外的信息。请注意,某些警告只能在全局抑制文件中被禁止,因为它们与特定的代码段没有关联。

当您单击代码分析警告上的操作下拉列表时,可以直接在Visual Studio中使用最后两个选项。当您使用SuppressMessageAttribute忽略警告时,您可以为Justification提供值。这样做可以让您和其他开发人员在以后的时间点了解警告被抑制的原因。

如果您收到有关拼写的警告,因为您的代码中有一些特殊的字词或缩写,您可能不应该取消警告,而是为您的项目创建custom code analysis dictionary

在代码上使用代码分析不仅可以提高代码质量,还可以在此过程中学到一些东西。