【问题标题】:What's the use of SupressMessage Attribute?SupressMessage 属性有什么用?
【发布时间】:2012-08-11 00:15:16
【问题描述】:

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

【问题讨论】:

标签: c# .net


【解决方案1】:

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

您可以使用SuppressMessageAttribute 来做到这一点。现在代码分析已内置到 Visual Studio 的“更高”SKU 中,但以前您必须使用名为 FxCop 的工具来执行分析。

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

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

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

  • 您可以在源文件中使用SuppressMessageAttribute 隐藏警告。这在代码和抑制之间建立了清晰的联系,但也会在代码中添加额外的信息。请注意,某些警告只能在全局禁止文件中进行禁止,因为它们与特定的代码段无关。

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

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

对您的代码进行代码分析不仅可以提高代码的质量,而且您还可以在此过程中学到一些东西。

【讨论】:

    猜你喜欢
    • 2010-11-12
    • 2013-08-08
    • 2014-09-12
    • 1970-01-01
    • 2012-10-19
    • 1970-01-01
    • 2023-04-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多