代码质量规则配置选项
除了配置严重性外,代码质量规则还有其他配置选项。 例如,可以将每个代码质量分析器配置为仅应用于代码库的特定部分。 通过向指定规则严重性和常规编辑器首选项的同一个 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
- exclude_async_void_methods
- exclude_single_letter_type_parameters
- output_kind
- required_modifiers
- exclude_extension_method_this_parameter
- null_check_validation_methods
- additional_string_formatting_methods
- excluded_type_names_with_derived_types
- excluded_symbol_names
- disallowed_symbol_names
- exclude_ordefault_methods
- ignore_internalsvisibleto
api_surface
描述 | 允许的值 | 默认值 | 可配置的规则 |
---|---|---|---|
要分析 API 图面的哪个部分 | public (适用于 public 和 protected API)internal 或 friend (适用于 internal 和 private 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 |
无修饰符要求 |
static 或 Shared |
必须声明为 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
描述 | 允许的值 | 默认值 | 可配置的规则 |
---|---|---|---|
从分析中排除 FirstOrDefault 和 LastOrDefault 方法。 |
true 或 false |
false |
CA1826 |
ignore_internalsvisibleto
描述 | 允许的值 | 默认值 | 可配置的规则 |
---|---|---|---|
在分析中包括标有 InternalsVisibleToAttribute 的程序集。 | true 或 false |
true |
CA1812CA1852 |
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈