Dela via


Konfigurationsalternativ för kodkvalitetsregel

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.

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 true
false
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> true
false
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 true
false
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:

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