SupressMessage 属性有啥用?

Posted

技术标签:

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

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

【问题讨论】:

似乎是为了抑制来自 FxCop 的消息 - 请参阅 ***.com/questions/35551/… 【参考方案1】:

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

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

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

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

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

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

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

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

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

【讨论】:

以上是关于SupressMessage 属性有啥用?的主要内容,如果未能解决你的问题,请参考以下文章

UIImageView 的拉伸属性有啥用。我怎样才能使用这个属性。?

.NET Control.Margin 属性有啥用?

TForm 上的 Align 和 Anchor 属性有啥用?

Visual Studio 8 中程序集引用的 Aliases 属性有啥用

如果我们不能从父组件更改属性或操作它们,@ViewChild 有啥用?

DataKeyNames属性有啥用?gridview中