SupressMessage属性有什么用途?

3

我一直在研究几个WPF应用程序的源代码,并且到处都可以看到SupressMessage属性。目前对该属性的描述非常模糊。"抑制特定静态分析工具规则违规的报告,允许在单个代码部件上进行多次抑制"。这个属性是用来干什么的,它有哪些实际用途呢?


似乎是用于抑制来自FxCop的消息 - 请参见https://dev59.com/4nVD5IYBdhLWcg3wQZUg - Alvaro Rodriguez
1个回答

6
当您将代码分析应用于项目时,有时会收到警告,您希望忽略这些警告,因为警告是误报,或者因为代码的特定部分违反了代码分析规则。
您可以使用SuppressMessageAttribute来实现这一点。现在,代码分析已内置于Visual Studio的“高级”SKU中,但以前必须使用名为FxCop的工具执行分析。
一般情况下,当您想要忽略警告时,有三种选择:
  • 如果您真的不关心规则,可以从您用于分析代码的规则集中删除该规则。

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

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

当您单击代码分析警告上的Action下拉菜单时,最后两个选项在Visual Studio中直接可用。当您使用SuppressMessageAttribute忽略警告时,可以为Justification提供值。这样做将允许您和以后的其他开发人员理解为什么抑制了警告。

如果您在代码中使用了一些特殊单词或缩写,导致出现拼写警告,建议不要忽略警告,而是为您的项目创建一个自定义代码分析字典
对您的代码进行代码分析不仅可以提高代码质量,还可能在此过程中学到一些东西。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接