避免在全局“SuppressMessageAttribute”中使用旧格式目标 (IDE0077)
属性 | 值 |
---|---|
规则 ID | IDE0077 |
标题 | 避免在全局 SuppressMessageAttribute 中使用旧格式目标 |
类别 | CodeQuality |
Subcategory | 杂项规则 |
适用的语言 | C# 和 Visual Basic |
概述
该规则标记使用旧版 FxCop 目标字符串格式指定 Target
的全局 SuppressMessageAttributes。 已知使用旧格式 Target
会出现性能问题,应避免使用。 有关详细信息,请参阅 dotnet/roslyn 问题 44362。
Target
的建议格式是文档 ID 格式。 有关文档 ID 的信息,请参阅文档 ID 格式。
提示
Visual Studio 2019 提供了一个代码修补程序,可将属性的 Target
自动更改为建议的格式。
选项
此规则没有关联的代码样式选项。
示例
// IDE0077: Legacy format target 'N.C.#F'
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Category", "Id: Title", Scope = "member", Target = "N.C.#F")]
// Fixed code
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Category", "Id: Title", Scope = "member", Target = "~F:N.C.F")]
namespace N
{
class C
{
public int F;
}
}
抑制警告
如果只想抑制单个冲突,请将预处理器指令添加到源文件以禁用该规则,然后重新启用该规则。
#pragma warning disable IDE0077
// The code that's violating the rule is on this line.
#pragma warning restore IDE0077
若要对文件、文件夹或项目禁用该规则,请在配置文件中将其严重性设置为 none
。
[*.{cs,vb}]
dotnet_diagnostic.IDE0077.severity = none
若要禁用此整个规则类别,请在配置文件中将此类别的严重性设置为 none
。
[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-CodeQuality.severity = none
有关详细信息,请参阅如何禁止显示代码分析警告。