程式碼品質規則組態選項

程式碼品質 規則除了只 設定其嚴重性 之外,還有 額外的組態選項。 例如,每個程式碼品質分析器都可以設定為只套用至程式碼基底的特定部分。 您可以將索引鍵/值組新增至您指定規則嚴重性和一般編輯器喜好設定的相同 EditorConfig 檔案,以指定這些選項。

注意

本文不會詳細說明如何設定規則的嚴重性。 設定 規則嚴重性之 .editorconfig 選項的前置詞 () 與這裡所述的選項不同 ( dotnet_diagnosticdotnet_code_quality )。 此外,此處所述的選項僅適用于程式碼品質規則,而嚴重性選項也適用于程式碼樣式規則。 作為快速參考,您可以使用下列選項語法來設定規則的嚴重性:

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 CA1000 CA1002 CA1003 CA1005 CA1008 CA1010 CA1012 CA1021 CA1024 CA1027 CA1028 CA1030 CA1036 CA1040 CA1041 CA1043 CA1044 CA1044 CA1046 CA1046 CA1047 CA1051 CA1052 CA1054 CA1055 CA1056 CA1058CA1062 CA1063 CA1068 CA1070 CA1700 CA1707 CA1708 CA1710 CA1711 CA1714 CA1715 CA1716 CA171717 CA1720 CA1721 CA1725 CA1801 CA1802 CA1815 CA1819 CA1822 CA1859 CA22208 CA22217 CA2225 CA2226 CA2231 CA2234

exclude_async_void_methods

描述 允許的值 預設值 可設定的規則
是否忽略不傳回值的非同步方法 true
false
false CA2007

注意

此選項在舊版中命名 skip_async_void_methods

exclude_single_letter_type_parameters

描述 允許的值 預設值 可設定的規則
是否要從規則中排除單一字元 類型參數 ,例如 SCollection<S> true
false
false CA1715

注意

此選項在舊版中命名 allow_single_letter_type_parameters

output_kind

描述 允許的值 預設值 可設定的規則
指定應該分析產生此元件類型之專案中的程式碼 列舉的 OutputKind 一或多個欄位

以逗號分隔多個值 (,)
所有輸出類型 CA2007

required_modifiers

描述 允許的值 預設值 可設定的規則
指定應該分析之 API 的必要修飾詞 下列允許修飾詞資料表中的一或多個值

以逗號分隔多個值 (,)
取決於每個規則 CA1802
允許的修飾詞 摘要
none 沒有修飾詞需求
staticShared 必須在 Visual Basic 中宣告為 staticShared 在 Visual Basic 中)
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 檢查驗證方法名稱 允許的方法名稱格式(以 |分隔):
- 方法名稱僅限 (包含名稱的所有方法,不論包含類型或命名空間為何)
- 符號 檔識別碼格式 的完整名稱,具有選擇性 M: 前置詞
CA1062

additional_string_formatting_methods

描述 允許的值 預設值 可設定的規則
其他字串格式方法的名稱 允許的方法名稱格式(以 |分隔):
- 方法名稱僅限 (包含名稱的所有方法,不論包含類型或命名空間為何)
- 符號 檔識別碼格式 的完整名稱,具有選擇性 M: 前置詞
CA2241

excluded_type_names_with_derived_types

描述 允許的值 預設值 可設定的規則
型別的名稱,讓型別及其所有衍生型別都排除以供分析 允許的符號名稱格式(以 |分隔):
- 僅限類型名稱(包含名稱的所有類型,不論包含類型或命名空間為何)
- 符號 檔識別碼格式 的完整名稱,具有選擇性 T: 前置詞
CA1001 CA1054 CA1055 CA1056 CA1056 CA1062 CA1068 CA1303 CA1304 CA1305 CA1508 CA2000 CA2100 CA2301 CA2302 CA2311 CA2312 CA2321 CA2322 CA2327 CA2328 CA2329 CA2330 CA3001 CA3002 CA3003 CA3004CA3005 CA3006 CA3007 CA3008 CA3009 CA3010 CA3011 CA3012 CA5361 CA5376 CA5377 CA5378 CA5380 CA5381 CA5382 CA5383 CA5384 CA5387 CA5388 CA5389 CA5390 CA5399 CA5400

excluded_symbol_names

描述 允許的值 預設值 可設定的規則
排除用於分析的符號名稱 允許的符號名稱格式(以 |分隔):
- 僅限符號名稱(包含名稱的所有符號,不論包含類型或命名空間為何)
- 符號 檔識別碼格式 的完整名稱。 每個符號名稱都需要符號類型前置詞,例如 M: 方法的前置詞、 T: 類型的前置詞,以及 N: 命名空間的前置詞。
- .ctor 建構函式和 .cctor 靜態建構函式
CA1001 CA1054 CA1055 CA1056 CA1056 CA1062 CA1068 CA1303 CA1304 CA1305 CA1508 CA2000 CA2100 CA2301 CA2302 CA2311 CA2312 CA2321 CA2322 CA2327 CA2328 CA2329 CA2330 CA3001 CA3002 CA3003 CA3004CA3005 CA3006 CA3007 CA3008 CA3009 CA3010 CA3011 CA3012 CA5361 CA5376 CA5377 CA5378 CA5380 CA5381 CA5382 CA5383 CA5384 CA5387 CA5388 CA5389 CA5390 CA5399 CA5400

disallowed_symbol_names

描述 允許的值 預設值 可設定的規則
分析內容中不允許的符號名稱 允許的符號名稱格式(以 |分隔):
- 僅限符號名稱(包含名稱的所有符號,不論包含類型或命名空間為何)
- 符號 檔識別碼格式 的完整名稱。 每個符號名稱都需要符號類型前置詞,例如 M: 方法的前置詞、 T: 類型的前置詞,以及 N: 命名空間的前置詞。
- .ctor 建構函式和 .cctor 靜態建構函式
CA1031

exclude_ordefault_methods

描述 允許的值 預設值 可設定的規則
FirstOrDefault 分析中排除 和 LastOrDefault 方法。 truefalse false CA1826

ignore_internalsvisibleto

描述 允許的值 預設值 可設定的規則
包含以分析標示的 InternalsVisibleToAttribute 元件。 truefalse true CA1812 CA1852