코드 품질 규칙 구성 옵션
‘코드 품질’ 규칙에는 심각도 구성 외에 추가 구성 옵션이 있습니다. 예를 들어 각 코드 품질 분석기는 코드베이스의 특정 부분에만 적용되도록 구성할 수 있습니다. 규칙 심각도 및 일반 편집기 기본 설정을 지정하는 동일한 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: 접두사 포함) |
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
설명 | 허용되는 값 | 기본값 | 구성 가능한 규칙 |
---|---|---|---|
FirstOrDefault 및 LastOrDefault 메서드는 분석에서 제외합니다. |
true 또는 false |
false |
CA1826 |
ignore_internalsvisibleto
설명 | 허용되는 값 | 기본값 | 구성 가능한 규칙 |
---|---|---|---|
InternalsVisibleToAttribute로 표시된 어셈블리를 분석에 포함합니다. | true 또는 false |
true |
CA1812CA1852 |
.NET
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기