SupressMessage属性有什么用?

ran*_*cun 3 .net c#

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

Mar*_*age 6

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

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

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

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

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

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

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

如果您收到有关拼写的警告,因为您的代码中有一些特殊的单词或缩写,您可能不应该禁止警告,而是为您的项目创建自定义代码分析字典.

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