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.

Kommentar

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.

Alternativomfattningar

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.

Alla regler

Syntaxen för att konfigurera ett alternativ för alla regler är följande:

Syntax Exempel
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 Exempel
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

Specifik regel

Syntaxen för att konfigurera ett alternativ för en specifik regel är följande:

Syntax Exempel
dotnet_code_quality.<RuleId>.<OptionName> = <OptionValue> dotnet_code_quality.CA1040.api_surface = public

Alternativ

I det här avsnittet visas tillgängliga konfigurationsalternativ för kodanalysverktyg. Mer information finns i Analyzer-konfiguration.

api_surface

beskrivning Tillåtna värden Standardvärde Konfigurerbara regler
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 CA1000CA1002CA1003CA1005CA1008CA1010CA1012CA1021CA1024CA1027CA1028CA1030CA1036CA1040CA1041CA1043CA1044CA1045CA1046CA1047CA1051CA1052CA1054CA1055CA1056CA1058fCA1063CA1068CA1070CA1700CA1707CA1708CA1710CA1711CA1714CA1715CA1716CA1717CA1720CA1721CA1725CA1801CA1802CA1815CA1819CA1822CA1859CA2208CA2217CA2225CA2226CA2231CA2234

exclude_async_void_methods

beskrivning Tillåtna värden Standardvärde Konfigurerbara regler
Om du vill ignorera asynkrona metoder som inte returnerar ett värde true
false
false CA2007

Kommentar

Det här alternativet namngavs skip_async_void_methods i en tidigare version.

exclude_single_letter_type_parameters

beskrivning Tillåtna värden Standardvärde Konfigurerbara regler
Om parametrar av typen en tecken ska undantas från regeln, till exempel S iCollection<S> true
false
false CA1715

Kommentar

Det här alternativet namngavs allow_single_letter_type_parameters i en tidigare version.

output_kind

beskrivning Tillåtna värden Standardvärde Konfigurerbara regler
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 CA2007

required_modifiers

beskrivning Tillåtna värden Standardvärde Konfigurerbara regler
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
Tillåten modifierare Sammanfattning
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

beskrivning Tillåtna värden Standardvärde Konfigurerbara regler
Om du vill hoppa över analys för parametern this för tilläggsmetoder true
false
false CA1062

null_check_validation_methods

beskrivning Tillåtna värden Standardvärde Konfigurerbara regler
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
Ingen CA1062

additional_string_formatting_methods

beskrivning Tillåtna värden Standardvärde Konfigurerbara regler
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
Ingen CA2241

excluded_type_names_with_derived_types

beskrivning Tillåtna värden Standardvärde Konfigurerbara regler
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
Ingen CA1001CA1054CA1055CA1056CA1062CA1068CA1303CA1304CA1305CA1508CA2000CA2100CA2301CA2302CA2311CA2312CA2321CA2322CA2327CA2328CA2329CA2330CA3001CA3002CA3003CA3004CA3005CA3006CA3007CA3008CA3009CA3010CA3011CA3012CA5361CA5376CA5377CA5378CA5380CA5381CA5382CA5383CA5384CA5387CA5388CA5389CA5390CA5399CA5400

excluded_symbol_names

beskrivning Tillåtna värden Standardvärde Konfigurerbara regler
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
Ingen CA1001CA1054CA1055CA1056CA1062CA1068CA1303CA1304CA1305CA1508CA2000CA2100CA2301CA2302CA2311CA2312CA2321CA2322CA2327CA2328CA2329CA2330CA3001CA3002CA3003CA3004CA3005CA3006CA3007CA3008CA3009CA3010CA3011CA3012CA5361CA5376CA5377CA5378CA5380CA5381CA5382CA5383CA5384CA5387CA5388CA5389CA5390CA5399CA5400

disallowed_symbol_names

beskrivning Tillåtna värden Standardvärde Konfigurerbara regler
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
Ingen CA1031

exclude_ordefault_methods

beskrivning Tillåtna värden Standardvärde Konfigurerbara regler
Exkluderar FirstOrDefault och LastOrDefault metoder från analys. true eller false false CA1826

ignore_internalsvisibleto

beskrivning Tillåtna värden Standardvärde Konfigurerbara regler
Innehåller sammansättningar som markerats med InternalsVisibleToAttribute i analysen. true eller false true CA1812CA1852

try_determine_additional_string_formatting_methods_automatically

beskrivning Tillåtna värden Standardvärde Konfigurerbara regler
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

beskrivning Tillåtna värden Standardvärde Konfigurerbara regler
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

beskrivning Tillåtna värden Standardvärde Konfigurerbara regler
Exkludera ASP.NET Core MVC ControllerBase när du överväger CSRF true eller false true CA5391

enum_values_prefix_trigger

beskrivning Tillåtna värden Standardvärde Konfigurerbara regler
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

beskrivning Tillåtna värden Standardvärde Konfigurerbara regler
Exkludera indirekta bastyper true eller false true CA1710

additional_required_suffixes

beskrivning Tillåtna värden Standardvärde Konfigurerbara regler
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.
Ingen CA1710

additional_required_generic_interfaces

beskrivning Tillåtna värden Standardvärde Konfigurerbara regler
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.
Ingen CA1010

Exempel:

Alternativvärde Sammanfattning
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

beskrivning Tillåtna värden Standardvärde Konfigurerbara regler
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

beskrivning Tillåtna värden Standardvärde Konfigurerbara regler
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

beskrivning Tillåtna värden Standardvärde Konfigurerbara regler
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

beskrivning Tillåtna värden Standardvärde Konfigurerbara regler
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.
Ingen CA1806

allowed_suffixes

beskrivning Tillåtna värden Standardvärde Konfigurerbara regler
Anger tillåtna suffix Lista (avgränsad med |) över tillåtna suffix. Ingen CA1711

enable_platform_analyzer_on_pre_net5_target

beskrivning Tillåtna värden Standardvärde Konfigurerbara regler
Anger om du vill aktivera analys för TFM:er före .NET 5 true eller false false CA1416

exclude_structs

beskrivning Tillåtna värden Standardvärde Konfigurerbara regler
Anger om structs ska undantas från analys true eller false false CA1051

additional_enum_none_names

beskrivning Tillåtna värden Standardvärde Konfigurerbara regler
Anger ytterligare tillåtna namn för ett nollvärdesuppräkningsfält Lista över ytterligare namn (avgränsade med |). Ingen CA1008

enumeration_methods

beskrivning Tillåtna värden Standardvärde Konfigurerbara regler
Anger ytterligare anpassade metoder som räknar upp en IEnumerable Fullständigt kvalificerade namn på ytterligare metoder (avgränsade med |). Ingen CA1851

linq_chain_methods

beskrivning Tillåtna värden Standardvärde Konfigurerbara regler
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 |). Ingen CA1851

assume_method_enumerates_parameters

beskrivning Tillåtna värden Standardvärde Konfigurerbara regler
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

beskrivning Tillåtna värden Standardvärde Konfigurerbara regler
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

beskrivning Tillåtna värden Standardvärde Konfigurerbara regler
Konfigurera överföring av avyttringsägarskap för argument som skickas till konstruktoranrop true eller false false CA2000

dispose_ownership_transfer_at_method_call

beskrivning Tillåtna värden Standardvärde Konfigurerbara regler
Konfigurera överföring av avyttringsägarskap för engångsobjekt som skickas som argument till metodanrop true eller false false CA2000

interproceduriell_analys_typ

beskrivning Tillåtna värden Standardvärde Konfigurerbara regler
Anger om du vill utföra interproceduranalys för källmetodanrop None, NonContextSensitive, ContextSensitive Specifik för varje konfigurerbar regel CA1062, CA1303, CA1508, CA2000, CA2100, CA2213

max_interprocedural_metod_anrop_kedja

beskrivning Tillåtna värden Standardvärde Konfigurerbara regler
Anger den maximala längden för metodanropskedjan som ska analyseras för analys av interproceduralt dataflöde Osignerat heltal 3 CA1062, CA1303, CA1508, CA2000, CA2100, CA2213

max_interprocedurär_lambda_eller_lokal_funktionsanropskedja

beskrivning Tillåtna värden Standardvärde Konfigurerbara regler
Anger maximal längd på lambda- eller lokal funktionsanropskedja som ska analyseras för interprocedurär dataflödesanalys Osignerat heltal 3 CA1062, CA1303, CA1508, CA2000, CA2100, CA2213

pekartillanalystyp

beskrivning Tillåtna värden Standardvärde Konfigurerbara regler
Anger huruvida PointsToAnalysis ska utföras None, PartialWithoutTrackingFieldsAndProperties, Complete Specifik för varje regel CA1062, CA1303, CA1508, CA2000, CA2100, CA2213

kopieringsanalys

beskrivning Tillåtna värden Standardvärde Konfigurerbara regler
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

tillräcklig_Iterationsantal_för_svag_KDF_algoritm

beskrivning Tillåtna värden Standardvärde Konfigurerbara regler
Konfigurerar ett tillräckligt iterationsantal när du använder en KDF-algoritm (weak key derivation function) Heltal 100000 för de flesta regler CA1062, CA1303, CA1508, CA2000, CA2100, CA2213