前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何禁止显示代码分析警告

如何禁止显示代码分析警告

作者头像
呆呆
发布2022-01-09 12:05:56
1.3K0
发布2022-01-09 12:05:56
举报
文章被收录于专栏:centosDai

本文介绍了在开发 .NET 应用时抑制代码分析警告的不同方法。

提示

如果使用 Visual Studio 作为开发环境,灯泡菜单可提供一些选项来生成用于抑制警告的代码。 有关详细信息,请参阅抑制冲突。

禁用规则

禁用导致警告的代码分析规则后,将对整个文件或项目禁用规则(具体取决于使用的配置文件的作用域)。 若要禁用规则,请在配置文件中将其严重性设置为 none。

[*.{cs,vb}]

dotnet_diagnostic.<rule-ID>.severity = none

有关规则严重性的详细信息,请参阅配置规则严重性。

使用预处理器指令

使用 #pragma 警告 (C#) 或禁用 (Visual Basic) 指令来仅抑制特定代码行的警告。

try { ... }

catch (Exception e)

{

#pragma warning disable CA2200 // Rethrow to preserve stack details

throw e;

#pragma warning restore CA2200 // Rethrow to preserve stack details

}

Try

...

Catch e As Exception

#Disable Warning CA2200 ' Rethrow to preserve stack details

Throw e

#Enable Warning CA2200 ' Rethrow to preserve stack details

End Try

使用 SuppressMessageAttribute

可以使用 SuppressMessageAttribute 在源文件中或项目的全局抑制文件(GlobalSuppressions.cs 或 GlobalSuppressions.vb)中抑制警告 。 此特性提供了一种仅在项目或文件的特定部分抑制警告的方法。

SuppressMessageAttribute 特性的两个必需的位置参数 是:规则的类别和规则 ID 。 下面的代码片段传递这些参数的 "Usage" 和 "CA2200:Rethrow to preserve stack details"。

[System.Diagnostics.CodeAnalysis.SuppressMessage("Usage", "CA2200:Rethrow to preserve stack details", Justification = "Not production code.")]

private static void IngorableCharacters()

{

try

{

...

}

catch (Exception e)

{

throw e;

}

}

如果将该特性添加到全局抑制文件中,则会将抑制的作用域设置到所需的级别,例如 "member"。 使用 Target 属性指定应抑制其警告的 API。

[assembly: SuppressMessage("Usage", "CA2200:Rethrow to preserve stack details", Justification = "Not production code.", Scope = "member", Target = "~M:MyApp.Program.IngorableCharacters")]

将文档 ID 用于要在 Target 属性中引用的 API。 有关文档 ID 的信息,请参阅文档 ID 格式。

若要对未映射到显式提供的用户源的编译器生成代码抑制警告,必须将抑制特性放置在全局抑制文件中。 例如,下面的代码将抑制针对编译器发出的构造函数的冲突:

[module: SuppressMessage("Design", "CA1055:AbstractTypesDoNotHavePublicConstructors", Scope="member", Target="MyTools.Type..ctor()")]

另请参阅

抑制冲突 (Visual Studio)

本文系外文翻译,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系外文翻译前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
腾讯云代码分析
腾讯云代码分析(内部代号CodeDog)是集众多代码分析工具的云原生、分布式、高性能的代码综合分析跟踪管理平台,其主要功能是持续跟踪分析代码,观测项目代码质量,助力维护团队卓越代码文化。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档