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) än 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 några av de tillgängliga alternativen. En fullständig lista över tillgängliga alternativ finns i Analyserarkonfiguration.

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 CA1000 CA1002 CA1003 CA1005 CA1008 CA1010 CA1012 CA1021 CA1024 CA1027 CA1028 CA1030 CA1036 CA1040 CA1041 CA1043 CA1044 CA1045 CA1046 CA1047 CA1051 CA1052 CA1054 CA1055 CA1056 CA1058 CA1062 CA1063 CA1068 CA1070 CA1700 CA1707 CA1708 CA1710 CA1711 CA1714 CA1715 CA1716 CA1717 CA1720 CA1721 CA1725 CA1801 CA1802 CA1815 CA1819 CA1822 CA1859 CA2208 CA2217 CA2225 CA2226 CA2231 CA2234

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 CA1001 CA1054 CA1055 CA1056 CA1062 CA1068 CA1303 CA1304 CA1305 CA1508 CA2000 CA2100 CA2301 CA2302 CA2311 CA2312 CA2321 CA2322 CA2327 CA2328 CA2329 CA2330 CA3001 CA3002 CA3003 CA3004 CA3005 CA3006 CA3007 CA3008 CA3009 CA3010 CA3011 CA3012 CA5361 CA5376 CA5377 CA5378 CA5380 CA5381 CA5382 CA5383 CA5384 CA5387 CA5388 CA5389 CA5390 CA5399 CA5400

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 CA1001 CA1054 CA1055 CA1056 CA1062 CA1068 CA1303 CA1304 CA1305 CA1508 CA2000 CA2100 CA2301 CA2302 CA2311 CA2312 CA2321 CA2322 CA2327 CA2328 CA2329 CA2330 CA3001 CA3002 CA3003 CA3004 CA3005 CA3006 CA3007 CA3008 CA3009 CA3010 CA3011 CA3012 CA5361 CA5376 CA5377 CA5378 CA5380 CA5381 CA5382 CA5383 CA5384 CA5387 CA5388 CA5389 CA5390 CA5399 CA5400

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 CA1812 CA1852

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

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

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