코드 품질 규칙 구성 옵션

‘코드 품질’ 규칙에는 심각도 구성 외에 추가 구성 옵션이 있습니다. 예를 들어 각 코드 품질 분석기는 코드베이스의 특정 부분에만 적용되도록 구성할 수 있습니다. 규칙 심각도 및 일반 편집기 기본 설정을 지정하는 동일한 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에 적용됨)
internal 또는 friend(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 한정자 요구 사항 없음
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: 접두사 포함)
None CA1062

additional_string_formatting_methods

설명 허용되는 값 기본값 구성 가능한 규칙
추가 문자열 서식 지정 메서드의 이름 허용되는 메서드 이름 형식(|로 구분):
- 메서드 이름만(포함하는 형식 또는 네임스페이스에 관계없이 해당 이름의 모든 메서드 포함)
- 기호의 설명서 ID 형식에 있는 정규화된 이름(선택적 M: 접두사 포함)
None CA2241

excluded_type_names_with_derived_types

설명 허용되는 값 기본값 구성 가능한 규칙
형식 이름(형식 및 모든 파생 형식이 분석에서 제외됨) 허용되는 기호 이름 형식(|로 구분):
- 형식 이름만(포함하는 형식 또는 네임스페이스에 관계없이 해당 이름의 모든 형식 포함)
- 기호의 설명서 ID 형식에 있는 정규화된 이름(선택적 T: 접두사 포함)
None CA1001CA1054CA1055CA1056CA1062CA1068CA1303CA1304CA1305CA1508CA2000CA2100CA2301CA2302CA2311CA2312CA2321CA2322CA2327CA2328CA2329CA2330CA3001CA3002CA3003CA3004CA3005CA3006CA3007CA3008CA3009CA3010CA3011CA3012CA5361CA5376CA5377CA5378CA5380CA5381CA5382CA5383CA5384CA5387CA5388CA5389CA5390CA5399CA5400

excluded_symbol_names

설명 허용되는 값 기본값 구성 가능한 규칙
분석에서 제외되는 기호의 이름 허용되는 기호 이름 형식(|로 구분):
- 기호 이름만(포함하는 형식 또는 네임스페이스에 관계없이 해당 이름의 모든 기호 포함)
- 기호의 설명서 ID 형식에 있는 정규화된 이름. 각 기호 이름에는 메서드 접두사 M:, 형식 접두사 T:, 네임스페이스 접두사 N: 같은 기호 종류 접두사가 필요합니다.
생성자에 대한 - .ctor 및 정적 생성자에 대한 .cctor
None CA1001CA1054CA1055CA1056CA1062CA1068CA1303CA1304CA1305CA1508CA2000CA2100CA2301CA2302CA2311CA2312CA2321CA2322CA2327CA2328CA2329CA2330CA3001CA3002CA3003CA3004CA3005CA3006CA3007CA3008CA3009CA3010CA3011CA3012CA5361CA5376CA5377CA5378CA5380CA5381CA5382CA5383CA5384CA5387CA5388CA5389CA5390CA5399CA5400

disallowed_symbol_names

설명 허용되는 값 기본값 구성 가능한 규칙
분석 컨텍스트에서 허용되지 않는 기호의 이름 허용되는 기호 이름 형식(|로 구분):
- 기호 이름만(포함하는 형식 또는 네임스페이스에 관계없이 해당 이름의 모든 기호 포함)
- 기호의 설명서 ID 형식에 있는 정규화된 이름. 각 기호 이름에는 메서드 접두사 M:, 형식 접두사 T:, 네임스페이스 접두사 N: 같은 기호 종류 접두사가 필요합니다.
생성자에 대한 - .ctor 및 정적 생성자에 대한 .cctor
None CA1031

exclude_ordefault_methods

설명 허용되는 값 기본값 구성 가능한 규칙
FirstOrDefaultLastOrDefault 메서드는 분석에서 제외합니다. true 또는 false false CA1826

ignore_internalsvisibleto

설명 허용되는 값 기본값 구성 가능한 규칙
InternalsVisibleToAttribute로 표시된 어셈블리를 분석에 포함합니다. true 또는 false true CA1812CA1852