Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Kodkvalitetsreglerna har ytterligare konfigurationsalternativ, förutom att bara konfigurera deras allvarlighetsgrad. Till exempel kan varje kodkvalitetsanalys konfigureras för att endast gälla för specifika delar av din kodbas. Du anger de här alternativen genom att lägga till nyckel/värde-par i samma EditorConfig fil där du anger regel allvarlighetsgrad och allmänna redigeringsinställningar.
Note
Den här artikeln beskriver inte hur du konfigurerar en regels allvarlighetsgrad. Alternativet .editorconfig för att ange en regels allvarlighetsgrad har ett annat prefix (dotnet_diagnostic) till de alternativ som beskrivs här (dotnet_code_quality). Dessutom gäller de alternativ som beskrivs här endast kodkvalitetsregler, medan allvarlighetsgradsalternativet även gäller för regler för kodformat. Som snabbreferens kan du konfigurera en regels allvarlighetsgrad med hjälp av följande alternativsyntax:
dotnet_diagnostic.<rule ID>.severity = <severity value>
Detaljerad information om hur du konfigurerar regelns allvarlighetsgrad finns dock i Allvarlighetsgrad.
Option scopes
Varje förfinande alternativ kan konfigureras för alla regler, för en kategori av regler (till exempel Säkerhet eller Design) eller för en specifik regel.
All rules
Syntaxen för att konfigurera ett alternativ för alla regler är följande:
| Syntax | Example |
|---|---|
| dotnet_code_quality.<OptionName> = <OptionValue> | dotnet_code_quality.api_surface = public |
Värdena för <OptionName> visas under Alternativ.
Kategori av regler
Syntaxen för att konfigurera ett alternativ för en regelkategori är följande:
| Syntax | Example |
|---|---|
| dotnet_code_quality.<RuleCategory>.<OptionName> = OptionValue | dotnet_code_quality.Naming.api_surface = public |
I följande tabell visas tillgängliga värden för <RuleCategory>.
Design
Documentation
Globalization
Interoperability
Maintainability
Naming
Performance
SingleFile
Reliability
Security
Usage
Specific rule
Syntaxen för att konfigurera ett alternativ för en specifik regel är följande:
| Syntax | Example |
|---|---|
| dotnet_code_quality.<RuleId>.<OptionName> = <OptionValue> | dotnet_code_quality.CA1040.api_surface = public |
Options
I det här avsnittet visas tillgängliga konfigurationsalternativ för kodanalysverktyg. Mer information finns i Analyzer-konfiguration.
- additional_enum_none_names
- additional_inheritance_excluded_symbol_names
- additional_required_generic_interfaces
- additional_required_suffixes
- additional_use_results_methods
- additional_string_formatting_methods
- allowed_suffixes
- analyzed_symbol_kinds
- api_surface
- assume_method_enumerates_parameters
- dataflödesanalysalternativ
- disallowed_symbol_names
- enable_platform_analyzer_on_pre_net5_target
- enum_values_prefix_trigger
- enumeration_methods
- exclude_aspnet_core_mvc_controllerbase
- exclude_indirect_base_types
- exclude_structs
- exclude_async_void_methods
- exclude_extension_method_this_parameter
- exclude_ordefault_methods
- exclude_single_letter_type_parameters
- excluded_symbol_names
- excluded_type_names_with_derived_types
- ignore_internalsvisibleto
- linq_chain_methods
- null_check_validation_methods
- output_kind
- points_to_analysis_kind
- required_modifiers
- try_determine_additional_string_formatting_methods_automatically
- unsafe_DllImportSearchPath_bits
- use_naming_heuristic
api_surface
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Vilken del av API-ytan som ska analyseras |
public (gäller för public och protected API:er)internal eller friend (gäller för internal och private protected API:er)private (gäller för private API:er)all (gäller för alla API:er)Avgränsa flera värden med kommatecken (,) |
public |
CA1000CA1002CA1003CA1005CA1008CA1010CA1012CA1021CA1024CA1027CA1028CA1030CA1036CA1040CA1041CA1043CA1044CA1045CA1046CA1047CA1051CA1052CA1054CA1055CA1056CA1058CA1062CA1063CA1068CA1070CA1700CA1707CA1708CA1710CA1711CA1714CA1715CA1716CA1717CA1720CA1721CA1725CA1801CA1802CA1815CA1819CA1822CA1859CA2208CA2217CA2225CA2226CA2231CA2234 |
exclude_async_void_methods
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Om du vill ignorera asynkrona metoder som inte returnerar ett värde | truefalse |
false |
CA2007 |
Note
Det här alternativet namngavs skip_async_void_methods i en tidigare version.
exclude_single_letter_type_parameters
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
Om parametrar av typen en tecken ska undantas från regeln, till exempel S iCollection<S> |
truefalse |
false |
CA1715 |
Note
Det här alternativet namngavs allow_single_letter_type_parameters i en tidigare version.
output_kind
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Anger att kod i ett projekt som genererar den här typen av sammansättning ska analyseras | Ett eller flera fält i OutputKind uppräkningen Avgränsa flera värden med kommatecken (,) |
Alla utdatatyper | CA1515, CA1516, CA2007 |
required_modifiers
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Anger nödvändiga modifierare för API:er som ska analyseras | Ett eller flera värden från tabellen med tillåtna modifierare nedan Avgränsa flera värden med kommatecken (,) |
Beror på varje regel | CA1802 |
| Allowed Modifier | Summary |
|---|---|
none |
Inga krav på modifierare |
static eller Shared |
Måste deklareras som static (Shared i Visual Basic) |
const |
Måste deklareras som const |
readonly |
Måste deklareras som readonly |
abstract |
Måste deklareras som abstract |
virtual |
Måste deklareras som virtual |
override |
Måste deklareras som override |
sealed |
Måste deklareras som sealed |
extern |
Måste deklareras som extern |
async |
Måste deklareras som async |
exclude_extension_method_this_parameter
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
Om du vill hoppa över analys för parametern this för tilläggsmetoder |
truefalse |
false |
CA1062 |
null_check_validation_methods
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Namn på valideringsmetoder med null-kontroll som verifierar att argument som skickas till metoden inte är null | Tillåtna metodnamnformat (avgränsade med |): – Endast metodnamn (innehåller alla metoder med namnet, oavsett vilken typ eller namnrymd som finns) – Fullständigt kvalificerade namn i symbolens dokumentations-ID-format, med ett valfritt M: prefix |
None | CA1062 |
additional_string_formatting_methods
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Namn på ytterligare strängformateringsmetoder | Tillåtna metodnamnformat (avgränsade med |): – Endast metodnamn (innehåller alla metoder med namnet, oavsett vilken typ eller namnrymd som finns) – Fullständigt kvalificerade namn i symbolens dokumentations-ID-format, med ett valfritt M: prefix |
None | CA2241 |
excluded_type_names_with_derived_types
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Namn på typer, så att typen och alla dess härledda typer undantas för analys | Tillåtna symbolnamnformat (avgränsade med |): – Skriv endast namn (innehåller alla typer med namnet, oavsett vilken typ eller namnrymd som finns) – Fullständigt kvalificerade namn i symbolens dokumentations-ID-format, med ett valfritt T: prefix |
None | CA1001CA1054CA1055CA1056CA1062CA1068CA1303CA1304CA1305CA1508CA2000CA2100CA2301CA2302CA2311CA2312CA2321CA2322CA2327CA2328CA2329CA2330CA3001CA3002CA3003CA3004CA3005CA3006CA3007CA3008CA3009CA3010CA3011CA3012CA5361CA5376CA5377CA5378CA5380CA5381CA5382CA5383CA5384CA5387CA5388CA5389CA5390CA5399CA5400 |
excluded_symbol_names
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Namn på symboler som undantas för analys | Tillåtna symbolnamnformat (avgränsade med |): - Endast symbolnamn (innehåller alla symboler med namnet, oavsett vilken typ eller namnrymd som finns) – Fullständigt kvalificerade namn i symbolens dokumentations-ID-format. Varje symbolnamn kräver ett symboltypprefix, till exempel M: prefix för metoder, T: prefix för typer och N: prefix för namnområden.- .ctor för konstruktorer och .cctor för statiska konstruktorer |
None | CA1001CA1054CA1055CA1056CA1062CA1068CA1303CA1304CA1305CA1508CA2000CA2100CA2301CA2302CA2311CA2312CA2321CA2322CA2327CA2328CA2329CA2330CA3001CA3002CA3003CA3004CA3005CA3006CA3007CA3008CA3009CA3010CA3011CA3012CA5361CA5376CA5377CA5378CA5380CA5381CA5382CA5383CA5384CA5387CA5388CA5389CA5390CA5399CA5400 |
disallowed_symbol_names
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Namn på symboler som inte tillåts i samband med analysen | Tillåtna symbolnamnformat (avgränsade med |): - Endast symbolnamn (innehåller alla symboler med namnet, oavsett vilken typ eller namnrymd som finns) – Fullständigt kvalificerade namn i symbolens dokumentations-ID-format. Varje symbolnamn kräver ett symboltypprefix, till exempel M: prefix för metoder, T: prefix för typer och N: prefix för namnområden.- .ctor för konstruktorer och .cctor för statiska konstruktorer |
None | CA1031 |
exclude_ordefault_methods
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
Exkluderar FirstOrDefault och LastOrDefault metoder från analys. |
true eller false |
false |
CA1826 |
ignore_internalsvisibleto
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Innehåller sammansättningar som markerats med InternalsVisibleToAttribute i analysen. |
true eller false |
true |
CA1812CA1852 |
try_determine_additional_string_formatting_methods_automatically
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Booleskt alternativ för att aktivera heuristisk identifiering av ytterligare strängformateringsmetoder. En metod betraktas som en strängformateringsmetod om den har en string format parameter följt av en params object[] parameter. |
true eller false |
false |
CA2241 |
unsafe_DllImportSearchPath_bits
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
Konfigurera vilket värde som DllImportSearchPath är osäkert för analysen |
Heltalsvärden för System.Runtime.InteropServices.DllImportSearchPath |
770 (det vill: AssemblyDirectory | UseDllDirectoryForDependencies | ApplicationDirectory) |
CA5393 |
exclude_aspnet_core_mvc_controllerbase
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Exkludera ASP.NET Core MVC ControllerBase när du överväger CSRF |
true eller false |
true |
CA5391 |
enum_values_prefix_trigger
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Anger tröskelvärdet för att utlösa namngivningsregeln för uppräkningsvärden |
-
AnyEnumValue – Regeln utlöses om något av uppräkningsvärdena börjar med uppräkningstypens namn.
- AllEnumValues – Regeln utlöses om alla uppräkningsvärden börjar med uppräkningstypens namn.
- Heuristic - Regeln utlöses med standardvärdet FxCop-heuristisk (dvs. när minst 75 % av uppräkningsvärdena börjar med namnet på uppräkningstypen). |
Heuristic |
CA1712 |
exclude_indirect_base_types
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Exkludera indirekta bastyper |
true eller false |
true |
CA1710 |
additional_required_suffixes
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Anger ytterligare nödvändiga suffix | Lista över typnamn (avgränsade med |) med det suffix som krävs (avgränsat med ->). Format för tillåtna typnamn:– Skriv endast namn (innehåller alla typer med namnet, oavsett vilken typ eller namnrymd som innehåller). – Fullständigt kvalificerade namn i symbolens dokumentations-ID-format med ett valfritt T: prefix. |
None | CA1710 |
additional_required_generic_interfaces
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Anger ytterligare obligatoriska allmänna gränssnitt | Lista över gränssnittsnamn (avgränsade med |) med deras obligatoriska generiska fullständigt kvalificerade gränssnitt (avgränsade med ->). Tillåtna gränssnittsformat:– Endast gränssnittsnamn (innehåller alla gränssnitt med namnet, oavsett vilken typ eller namnrymd som innehåller). – Fullständigt kvalificerade namn i symbolens dokumentations-ID-format med ett valfritt T: prefix. |
None | CA1010 |
Examples:
| Option Value | Summary |
|---|---|
dotnet_code_quality.CA1010.additional_required_generic_interfaces = ISomething->System.Collections.Generic.IEnumerable`1 |
Alla typer som implementerar ISomething oavsett namnrymd förväntas också implementera System.Collections.Generic.IEnumerable\`1. |
dotnet_code_quality.CA1010.additional_required_generic_interfaces = T:System.Collections.IDictionary->T:System.Collections.Generic.IDictionary`2 |
Alla typer av implementering System.Collections.IDictionary förväntas också implementera System.Collections.Generic.IDictionary`2. |
additional_inheritance_excluded_symbol_names
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Anger typer eller namnområden som ska undantas från arvshierarkiträdet | Format för tillåten typnamn: – Typ eller namnområdesnamn (innehåller alla typer med namnet, oavsett vilken typ eller namnrymd som innehåller, och alla typer vars namnområde innehåller namnet). - Typ- eller namnområdesnamn som slutar med en jokerteckensymbol (innehåller alla typer vars namn börjar med det angivna namnet, oavsett vilken typ eller namnrymd som innehåller, och alla typer vars namnområde innehåller namnet). – Fullständigt kvalificerade namn i symbolens dokumentations-ID-format med ett valfritt T: prefix för typer eller N: prefix för namnområden.
– Fullständigt kvalificerat typ- eller namnområdesnamn med ett valfritt T: prefix för typ eller N: prefix för namnområdet och slutar med jokertecknet (innehåller alla typer vars fullständigt kvalificerade namn börjar med det angivna typnamnet eller alla typer vars fullständigt kvalificerade namn börjar med det angivna namnområdesnamnet). |
N:System.* (Det här värdet läggs alltid automatiskt till i det angivna värdet) |
CA1501 |
analyzed_symbol_kinds
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Anger de symboltyper som ska analyseras | Ett eller flera fält i SymbolKind som en kommaavgränsad lista. | Namespace, NamedType, Method, Property, Event, Parameter |
CA1716 |
use_naming_heuristic
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
Konfigurerar om parametrar eller egenskapsnamn som innehåller Text, Messageeller Caption utlöser den här regeln |
true eller false |
false |
CA1303 |
additional_use_results_methods
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Anger ytterligare anpassade API:er vars resultat måste användas | Namn på ytterligare metoder (avgränsade med |). Format för tillåtna metodnamn: – Endast metodnamn (innehåller alla metoder med namnet, oavsett vilken typ eller namnrymd som innehåller). – Fullständigt kvalificerade namn i symbolens dokumentations-ID-format med ett valfritt M: prefix. |
None | CA1806 |
allowed_suffixes
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Anger tillåtna suffix | Lista (avgränsad med |) över tillåtna suffix. | None | CA1711 |
enable_platform_analyzer_on_pre_net5_target
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Anger om du vill aktivera analys för TFM:er före .NET 5 |
true eller false |
false |
CA1416 |
exclude_structs
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Anger om structs ska undantas från analys |
true eller false |
false |
CA1051 |
additional_enum_none_names
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Anger ytterligare tillåtna namn för ett nollvärdesuppräkningsfält | Lista över ytterligare namn (avgränsade med |). | None | CA1008 |
enumeration_methods
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Anger ytterligare anpassade metoder som räknar upp en IEnumerable | Fullständigt kvalificerade namn på ytterligare metoder (avgränsade med |). | None | CA1851 |
linq_chain_methods
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
Anger ytterligare anpassade LINQ-kedjemetoder (det vill ex. metoder tar ett IEnumerable argument och returnerar en ny IEnumerable instans) |
Fullständigt kvalificerade namn på ytterligare metoder (avgränsade med |). | None | CA1851 |
assume_method_enumerates_parameters
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
Anger om de anpassade metoderna ska räkna upp sina IEnumerable parametrar |
true eller false |
false |
CA1851 |
Alternativ för dataflödesanalys
Alternativen i det här avsnittet konfigurerar dataflödesanalysregler. Alternativen är:
- dispose_analysis_kind
- dispose_ownership_transfer_at_constructor
- dispose_ownership_transfer_at_method_call
- interprocedural_analysis_kind
- max_interprocedural_lambda_or_local_function_call_chain
- max_interprocedural_method_call_chain
- copy_analysis
- sufficient_IterationCount_for_weak_KDF_algorithm
Mer information om dataflödesanalys finns i Skriva dataflödesanalysbaserade analysatorer.
dispose_analysis_kind
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Anger vilka sökvägar som ska analyseras för avyttringsöverträdelser |
-
AllPaths – Spåra och rapportera att det saknas bortskaffandeöverträdelser på alla sökvägar (icke-undantags- och undantagssökvägar). Dessutom flaggar du även användning av icke-rekommenderade bortskaffandemönster som kan orsaka potentiella bortskaffandeläckor.
- AllPathsOnlyNotDisposed – Spåra och rapportera att det saknas bortskaffandeöverträdelser på alla sökvägar (icke-undantags- och undantagssökvägar). Flagga inte användning av icke-rekommenderade bortskaffandemönster som kan orsaka potentiella avfallsläckor.
- NonExceptionPaths – Spåra och rapportera överträdelser av bortskaffande som saknas endast på programsökvägar som inte är undantagsfel. Dessutom flaggar du även användning av icke-rekommenderade bortskaffandemönster som kan orsaka potentiella bortskaffandeläckor.
- NonExceptionPathsOnlyNotDisposed – Spåra och rapportera överträdelser av bortskaffande som saknas endast på programsökvägar som inte är undantagsfel. Flagga inte användning av icke-rekommenderade bortskaffandemönster som kan orsaka potentiella avfallsläckor. |
NonExceptionPaths |
CA2000 |
dispose_ownership_transfer_at_constructor
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Konfigurera överföring av avyttringsägarskap för argument som skickas till konstruktoranrop |
true eller false |
false |
CA2000 |
dispose_ownership_transfer_at_method_call
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Konfigurera överföring av avyttringsägarskap för engångsobjekt som skickas som argument till metodanrop |
true eller false |
false |
CA2000 |
interprocedural_analysis_kind
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Anger om du vill utföra interproceduranalys för källmetodanrop |
None, , NonContextSensitiveContextSensitive |
Specifik för varje konfigurerbar regel | CA1062, CA1303, CA1508, CA2000, CA2100, CA2213 |
max_interprocedural_method_call_chain
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Anger den maximala längden för metodanropskedjan som ska analyseras för analys av interproceduralt dataflöde | Unsigned integer | 3 | CA1062, CA1303, CA1508, CA2000, CA2100, CA2213 |
max_interprocedural_lambda_or_local_function_call_chain
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Anger maximal längd på lambda- eller lokal funktionsanropskedja som ska analyseras för interprocedurär dataflödesanalys | Unsigned integer | 3 | CA1062, CA1303, CA1508, CA2000, CA2100, CA2213 |
points_to_analysis_kind
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Anger huruvida PointsToAnalysis ska utföras |
None, , PartialWithoutTrackingFieldsAndPropertiesComplete |
Specifik för varje regel | CA1062, CA1303, CA1508, CA2000, CA2100, CA2213 |
copy_analysis
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Anger om du vill utföra kopieringsanalys (spårar värde och referenskopior) |
true eller false |
true för de flesta regler |
CA1062, CA1303, CA1508, CA2000, CA2100, CA2213 |
sufficient_IterationCount_for_weak_KDF_algorithm
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Konfigurerar ett tillräckligt iterationsantal när du använder en KDF-algoritm (weak key derivation function) | Integer | 100000 för de flesta regler | CA1062, CA1303, CA1508, CA2000, CA2100, CA2213 |