代码质量规则配置选项

除了配置严重性外,代码质量规则还有其他配置选项。 例如,可以将每个代码质量分析器配置为仅应用于代码库的特定部分。 通过向指定规则严重性和常规编辑器首选项的同一个 EditorConfig 文件添加键值对,可指定这些选项。

注意

本文不详细说明如何配置规则的严重性。 用于设置规则严重性的 .editorconfig 选项与此处描述的选项 (dotnet_code_quality) 具有不同的前缀 (dotnet_diagnostic)。 此外,此处描述的选项仅适用于代码质量规则,而严重性选项也适用于代码样式规则。 作为快速参考,可以使用以下选项语法配置规则的严重性:

dotnet_diagnostic.<rule ID>.severity = <severity value>

然而,有关配置规则严重性的详细信息,请参阅严重性级别

选项作用域

每个优化选项都可以针对所有规则、某个规则类别(例如“安全性”或“设计”)或某个特定规则进行配置。

┮Τ砏玥

若要为所有规则配置选项,请使用下面的语法:

语法 示例
dotnet_code_quality.<OptionName> = <OptionValue> dotnet_code_quality.api_surface = public

<OptionName> 的值列在选项下。

规则类别

若要为某个规则类别配置选项,请使用下面的语法:

语法 示例
dotnet_code_quality.<RuleCategory>.<OptionName> = OptionValue dotnet_code_quality.Naming.api_surface = public

下表列出了 <RuleCategory> 的可用值。

Design
Documentation
Globalization
Interoperability

Maintainability
Naming
Performance
SingleFile

Reliability
Security
Usage

特定规则

若要为某个特定规则配置选项,请使用下面的语法:

语法 示例
dotnet_code_quality.<RuleId>.<OptionName> = <OptionValue> dotnet_code_quality.CA1040.api_surface = public

选项

本节列出了一部分可用选项。 若要查看可用选项的完整列表,请参阅分析器配置

api_surface

描述 允许的值 默认值 可配置的规则
要分析 API 图面的哪个部分 public(适用于 publicprotected API)
internalfriend(适用于 internalprivate protected API)
private(适用于 private API)
all(适用于所有 API)

用逗号 (,) 分隔多个值
public CA1000CA1002CA1003CA1005CA1008CA1010CA1012CA1021CA1024CA1027CA1028CA1030CA1036CA1040CA1041CA1043CA1044CA1045CA1046CA1047CA1051CA1052CA1054CA1055CA1056CA1058CA1062CA1063CA1068CA1070CA1700CA1707CA1708CA1710CA1711CA1714CA1715CA1716CA1717CA1720CA1721CA1725CA1801CA1802CA1815CA1819CA1822CA1859CA2208CA2217CA2225CA2226CA2231CA2234

exclude_async_void_methods

描述 允许的值 默认值 可配置的规则
是否忽略不返回值的异步方法 true
false
false CA2007

注意

早期版本中将此选项命名为 skip_async_void_methods

exclude_single_letter_type_parameters

描述 允许的值 默认值 可配置的规则
是否从规则中排除单字符的类型参数,例如,Collection<S> 中的 S true
false
false CA1715

注意

早期版本中将此选项命名为 allow_single_letter_type_parameters

output_kind

描述 允许的值 默认值 可配置的规则
指定应分析项目中生成此程序集类型的代码 OutputKind 枚举的一个或多个字段

用逗号 (,) 分隔多个值
所有输出种类 CA2007

required_modifiers

描述 允许的值 默认值 可配置的规则
指定应分析的 API 所需的修饰符 以下允许的修饰符表中的一个或多个值

用逗号 (,) 分隔多个值
取决于每个规则 CA1802
允许的修饰符 总结
none 无修饰符要求
staticShared 必须声明为 static(在 Visual Basic 中为 Shared
const 必须声明为 const
readonly 必须声明为 readonly
abstract 必须声明为 abstract
virtual 必须声明为 virtual
override 必须声明为 override
sealed 必须声明为 sealed
extern 必须声明为 extern
async 必须声明为 async

exclude_extension_method_this_parameter

描述 允许的值 默认值 可配置的规则
是否跳过对扩展方法的 this 参数的分析 true
false
false CA1062

null_check_validation_methods

描述 允许的值 默认值 可配置的规则
null 检查验证方法的名称,这些方法用于确定传递给方法的参数不是 null 允许的方法名称格式(以 | 分隔):
- 仅方法名称(包括具有相应名称的所有方法,不考虑包含的类型或命名空间)
- 完全限定的名称,使用符号的文档 ID 格式,前缀为 M:(可选)
CA1062

additional_string_formatting_methods

描述 允许的值 默认值 可配置的规则
其他字符串格式设置方法的名称 允许的方法名称格式(以 | 分隔):
- 仅方法名称(包括具有相应名称的所有方法,不考虑包含的类型或命名空间)
- 完全限定的名称,使用符号的文档 ID 格式,前缀为 M:(可选)
CA2241

excluded_type_names_with_derived_types

描述 允许的值 默认值 可配置的规则
类型的名称,用于将类型及其所有派生类型从分析范围内排除 允许的符号名称格式(以 | 分隔):
- 仅类型名称(包括具有相应名称的所有类型,不考虑包含的类型或命名空间)
- 完全限定的名称,使用符号的文档 ID 格式,前缀为 T:(可选)
CA1001CA1054CA1055CA1056CA1062CA1068CA1303CA1304CA1305CA1508CA2000CA2100CA2301CA2302CA2311CA2312CA2321CA2322CA2327CA2328CA2329CA2330CA3001CA3002CA3003CA3004CA3005CA3006CA3007CA3008CA3009CA3010CA3011CA3012CA5361CA5376CA5377CA5378CA5380CA5381CA5382CA5383CA5384CA5387CA5388CA5389CA5390CA5399CA5400

excluded_symbol_names

描述 允许的值 默认值 可配置的规则
从分析范围排除的符号的名称 允许的符号名称格式(以 | 分隔):
- 仅符号名称(包括具有相应名称的所有符号,不考虑包含的类型或命名空间)
- 完全限定的名称,使用符号的文档 ID 格式 每个符号名称都需要带有一个符号类型前缀,例如表示方法的 M: 前缀、表示类型的 T: 前缀,以及表示命名空间的 N: 前缀。
- .ctor 表示构造函数,.cctor 表示静态构造函数
CA1001CA1054CA1055CA1056CA1062CA1068CA1303CA1304CA1305CA1508CA2000CA2100CA2301CA2302CA2311CA2312CA2321CA2322CA2327CA2328CA2329CA2330CA3001CA3002CA3003CA3004CA3005CA3006CA3007CA3008CA3009CA3010CA3011CA3012CA5361CA5376CA5377CA5378CA5380CA5381CA5382CA5383CA5384CA5387CA5388CA5389CA5390CA5399CA5400

disallowed_symbol_names

描述 允许的值 默认值 可配置的规则
不允许出现在分析上下文中的符号的名称 允许的符号名称格式(以 | 分隔):
- 仅符号名称(包括具有相应名称的所有符号,不考虑包含的类型或命名空间)
- 完全限定的名称,使用符号的文档 ID 格式 每个符号名称都需要带有一个符号类型前缀,例如表示方法的 M: 前缀、表示类型的 T: 前缀,以及表示命名空间的 N: 前缀。
- .ctor 表示构造函数,.cctor 表示静态构造函数
CA1031

exclude_ordefault_methods

描述 允许的值 默认值 可配置的规则
从分析中排除 FirstOrDefaultLastOrDefault 方法。 truefalse false CA1826

ignore_internalsvisibleto

描述 允许的值 默认值 可配置的规则
在分析中包括标有 InternalsVisibleToAttribute 的程序集。 truefalse true CA1812CA1852