次の方法で共有


コード品質ルールの構成オプション

コード品質ルールには、重大度を構成するオプションの他に、追加の構成オプションが用意されています。 たとえば、各コード品質アナライザーを、コードベースの特定の部分にのみ適用するように構成できます。 これらのオプションは、ルールの重大度や全般的なエディターの基本設定を指定するために使用する、同一の EditorConfig ファイルにキーと値のペアを追加して指定します。

Note

この記事では、規則の重大度を構成する方法については詳しく説明しません。 ルールの重大度を設定する .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> の値は Options の下に一覧表示されます。

ルールのカテゴリ

ルールの "カテゴリ"に対してオプションを構成するための構文は、次のとおりです。

構文
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

[オプション]

このセクションでは、使用可能なオプションの一部を一覧で示します。 使用可能なオプションの完全な一覧については、「Analyzer Configuration」(Analyzer の構成) を参照してください。

api_surface

説明 使用できる値 規定値 構成可能なルール
分析する API サーフェイスの部分 public(public および protected API に適用)
internal または friend (internal および private 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 CA1045 CA1046 CA1047 CA1051 CA1052 CA1054 CA1055 CA1056 CA1058 CA1062 CA1063 CA1068 CA1070 CA1700 CA1707 CA1708 CA1710 CA1711 CA1714 CA1715 CA1716 CA1717 CA1720 CA1721 CA1725 CA1801 CA1802 CA1815 CA1819 CA1822 CA1859 CA2208 CA2217 CA2225 CA2226 CA2231 CA2234

exclude_async_void_methods

説明 使用できる値 規定値 構成可能なルール
値を返さない非同期メソッドを無視するかどうか true
false
false CA2007

Note

このオプションは、以前のバージョンでは skip_async_void_methods という名前でした。

exclude_single_letter_type_parameters

説明 使用できる値 規定値 構成可能なルール
1 文字の型パラメーターをそのルールから除外するかどうか (例: Collection<S>S) true
false
false CA1715

Note

このオプションは、以前のバージョンでは allow_single_letter_type_parameters という名前でした。

output_kind

説明 使用できる値 規定値 構成可能なルール
この型のアセンブリを生成するプロジェクト内のコードは、分析する必要があることを指定します OutputKind 列挙型の 1 つまたは複数のフィールド

複数の値はコンマ (,) で区切ります
すべての出力の種類 CA2007

required_modifiers

説明 使用できる値 規定値 構成可能なルール
分析する必要がある API の必須の修飾子を指定します 下記の表 (「許可される修飾子」) の 1 つ以上の値

複数の値はコンマ (,) で区切ります
ルールごとに異なる 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: プレフィックスも使用可)
なし CA1001 CA1054 CA1055 CA1056 CA1062 CA1068 CA1303 CA1304 CA1305 CA1508 CA2000 CA2100 CA2301 CA2302 CA2311 CA2312 CA2321 CA2322 CA2327 CA2328 CA2329 CA2330 CA3001 CA3002 CA3003 CA3004 CA3005 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

説明 使用できる値 規定値 構成可能なルール
分析から除外されるシンボルの名前 許可されるシンボル名の形式 (| 区切り):
- シンボル名のみ (包含する型または名前空間に関係なく、その名前が指定されたすべてのシンボルが含まれます)
- そのシンボルのドキュメント ID 形式の完全修飾名。 各シンボル名には、メソッドには M: プレフィックス、型には T: プレフィックス、名前空間には N: プレフィックスのように、シンボルの種類のプレフィックスが必要です。
- コンストラクターには .ctor、静的コンストラクターには .cctor
なし CA1001 CA1054 CA1055 CA1056 CA1062 CA1068 CA1303 CA1304 CA1305 CA1508 CA2000 CA2100 CA2301 CA2302 CA2311 CA2312 CA2321 CA2322 CA2327 CA2328 CA2329 CA2330 CA3001 CA3002 CA3003 CA3004 CA3005 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

説明 使用できる値 規定値 構成可能なルール
分析のコンテキストで禁止されているシンボルの名前 許可されるシンボル名の形式 (| 区切り):
- シンボル名のみ (包含する型または名前空間に関係なく、その名前が指定されたすべてのシンボルが含まれます)
- そのシンボルのドキュメント ID 形式の完全修飾名。 各シンボル名には、メソッドには M: プレフィックス、型には T: プレフィックス、名前空間には N: プレフィックスのように、シンボルの種類のプレフィックスが必要です。
- コンストラクターには .ctor、静的コンストラクターには .cctor
なし CA1031

exclude_ordefault_methods

説明 使用できる値 規定値 構成可能なルール
分析から FirstOrDefault メソッドと LastOrDefault メソッドを除外します。 true または false false CA1826

ignore_internalsvisibleto

説明 使用できる値 規定値 構成可能なルール
InternalsVisibleToAttribute とマークされたアセンブリが分析に含まれます。 true または false true CA1812 CA1852

try_determine_additional_string_formatting_methods_automatically

説明 使用できる値 規定値 構成可能なルール
追加の文字列書式設定メソッドのヒューリスティック検出を有効にするブール型のオプション。
string format パラメーターの後に params object[] パラメーターが指定されているメソッドは、文字列書式指定メソッドと見なされます。
true または false false CA2241

unsafe_DllImportSearchPath_bits

説明 使用できる値 規定値 構成可能なルール
DllImportSearchPath のどの値が分析に対して安全でないかを構成できます System.Runtime.InteropServices.DllImportSearchPath の整数値 770 (つまり、AssemblyDirectory | UseDllDirectoryForDependencies | ApplicationDirectory) CA5393

exclude_aspnet_core_mvc_controllerbase

説明 使用できる値 規定値 構成可能なルール
CSRF を考慮する際に ASP.NET Core MVC ControllerBase を除外します true または false true CA5391

dispose_analysis_kind

説明 使用できる値 規定値 構成可能なルール
破棄違反を分析するパスを指定します - AllPaths - すべてのパス (非例外パスと例外パス) で不足している破棄違反を追跡して報告します。 さらに、破棄漏れを引き起こす可能性がある、推奨されていない破棄パターンの使用にもフラグを設定します。
- AllPathsOnlyNotDisposed - すべてのパス (非例外パスと例外パス) で不足している破棄違反を追跡して報告します。 破棄漏れを引き起こす可能性がある、推奨されていない破棄パターンの使用にフラグを設定しません。
- NonExceptionPaths - 非例外プログラム パスのみで不足している破棄違反を追跡して報告します。 さらに、破棄漏れを引き起こす可能性がある、推奨されていない破棄パターンの使用にもフラグを設定します。
- NonExceptionPathsOnlyNotDisposed - 非例外プログラム パスのみで不足している破棄違反を追跡して報告します。 破棄漏れを引き起こす可能性がある、推奨されていない破棄パターンの使用にフラグを設定しません。
NonExceptionPaths CA2000

dispose_ownership_transfer_at_constructor

説明 使用できる値 規定値 構成可能なルール
コンストラクターの呼び出しに渡される引数に関する破棄所有権の譲渡を構成します true または false false CA2000

dispose_ownership_transfer_at_method_call

説明 使用できる値 規定値 構成可能なルール
メソッドの呼び出しに引数として渡される破棄可能なオブジェクトに関する破棄所有権の譲渡を構成します true または false false CA2000

enum_values_prefix_trigger

説明 使用できる値 規定値 構成可能なルール
列挙値の名前付けルールをトリガーするしきい値を指定します - AnyEnumValue - 列挙値の "いずれか" が列挙型の名前で始まる場合、ルールがトリガーされます。
- AllEnumValues - 列挙値の "すべて" が列挙型の名前で始まる場合、ルールがトリガーされます。
- Heuristic - ルールは、既定の FxCop ヒューリスティックを使用してトリガーされます (つまり、列挙値の 75% 以上が列挙型の名前で始まる場合に発生します)。
Heuristic CA1712

exclude_indirect_base_types

説明 使用できる値 規定値 構成可能なルール
間接基本型を除外する true または false true CA1710

additional_required_suffixes

説明 使用できる値 規定値 構成可能なルール
追加の必要なサフィックスを指定します 型名のリスト (| で区切られます) とその必要なサフィックス (-> で区切られます)。 許可されている型名の形式:
- 型名のみ (包含する型または名前空間に関係なく、その名前が指定されたすべての型が含まれます)。
- そのシンボルのドキュメント ID 形式の完全修飾名 (オプションで T: プレフィックスも使用可)。
なし CA1710

additional_required_generic_interfaces

説明 使用できる値 規定値 構成可能なルール
追加の必須ジェネリック インターフェイスを指定します 必須のジェネリック完全修飾インターフェイス (| で区切られます) を使用して、インターフェイス名 (-> で区切られます) のリスト。 許可されているインターフェイスの形式:
- インターフェイスの名前のみ (包含する型または名前空間に関係なく、その名前が指定されたすべてのインターフェイスが含まれます)。
- そのシンボルのドキュメント ID 形式の完全修飾名 (オプションで T: プレフィックスも使用可)。
なし CA1010

例 :

オプション値 まとめ
dotnet_code_quality.CA1010.additional_required_generic_interfaces = ISomething->System.Collections.Generic.IEnumerable`1 名前空間に関係なく ISomething を実装するすべての型は、System.Collections.Generic.IEnumerable\`1 を実装することも期待されます。
dotnet_code_quality.CA1010.additional_required_generic_interfaces = T:System.Collections.IDictionary->T:System.Collections.Generic.IDictionary`2 System.Collections.IDictionary を実装するすべての型は、System.Collections.Generic.IDictionary`2 を実装することも期待されます。

additional_inheritance_excluded_symbol_names

説明 使用できる値 規定値 構成可能なルール
継承階層ツリーから除外する型または名前空間を指定します 許可されている型名の形式:
- 型または名前空間の名前 (包含する型または名前空間に関係なく、その名前が指定されたすべての型、および名前空間にその名前を含むすべての型が含まれます)。
- ワイルドカード記号で終わる型名または名前空間名 (包含する型または名前空間に関係なく、指定された名前で始まる名前のすべての型、およびその名前を含む名前空間のすべての種類が含まれます)。
- そのシンボルのドキュメント ID 形式の完全修飾名 (オプションで型の T: プレフィックスまたは名前空間の N: プレフィックスも使用可)。
- 型のオプションの T: プレフィックスまたは名前空間の N: プレフィックスを使用し、ワイルドカード記号で終わる完全修飾型または名前空間の名前 (完全修飾名が指定された型名で始まるすべての型、または完全修飾名が指定された名前空間名で始まるすべての型を含みます)。
N:System.* (この値は常に指定された値に自動的に追加されます) CA1501

analyzed_symbol_kinds

説明 使用できる値 規定値 構成可能なルール
分析するシンボルの種類を指定します コンマ区切りリストとして SymbolKind の 1 つ以上のフィールド。 Namespace, NamedType, Method, Property, Event, Parameter CA1716

use_naming_heuristic

説明 使用できる値 規定値 構成可能なルール
TextMessage、または Caption を含むパラメーターまたはプロパティ名でこのルールがトリガーされるかどうかを構成します true または false false CA1303

additional_use_results_methods

説明 使用できる値 規定値 構成可能なルール
結果を使用する必要がある追加のカスタム API を指定します 追加のメソッドの名前 (| で区切られます)。 許可されているメソッド名の形式:
- メソッド名のみ (包含する型または名前空間に関係なく、その名前が指定されたすべてのメソッドが含まれます)。
- そのシンボルのドキュメント ID 形式の完全修飾名 (オプションで M: プレフィックスも使用可)。
なし CA1806

allowed_suffixes

説明 使用できる値 規定値 構成可能なルール
許可されるサフィックスを指定します 許可されるサフィックスの一覧 (| で区切られます)。 なし CA1711

enable_platform_analyzer_on_pre_net5_target

説明 使用できる値 規定値 構成可能なルール
.NET 5 より前の TFM の分析を有効にするかどうかを指定します true または false false CA1416

exclude_structs

説明 使用できる値 規定値 構成可能なルール
分析から構造体を除外するかどうかを指定します true または false false CA1051

additional_enum_none_names

説明 使用できる値 規定値 構成可能なルール
値が 0 の列挙フィールドに対して許可される追加の名前を指定します 追加の名前の一覧 (| で区切られます)。 なし CA1008

enumeration_methods

説明 使用できる値 規定値 構成可能なルール
IEnumerable を列挙する追加のカスタム メソッドを指定します 追加のメソッドの完全修飾名 (| で区切られます)。 なし CA1851

linq_chain_methods

説明 使用できる値 規定値 構成可能なルール
追加のカスタマイズされた LINQ チェーン メソッドを指定します (つまり、メソッドは IEnumerable 引数を受け取り、新しい IEnumerable インスタンスを返します) 追加のメソッドの完全修飾名 (| で区切られます)。 なし CA1851

assume_method_enumerates_parameters

説明 使用できる値 規定値 構成可能なルール
カスタマイズされたメソッドが IEnumerable パラメーターを列挙することを想定するかどうかを指定します true または false false CA1851