避免在全局“SuppressMessageAttribute”中使用旧格式目标 (IDE0077)
财产 | 价值 |
---|---|
规则 ID | IDE0077 |
标题 | 避免在全局 SuppressMessageAttribute 中使用旧格式目标 |
类别 | CodeQuality |
子类别 | 其他规则 |
适用的语言 | 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
有关详细信息,请参阅 如何取消代码分析警告。