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
- 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
- try_determine_additional_string_formatting_methods_automatically
- unsafe_DllImportSearchPath_bits
- exclude_aspnet_core_mvc_controllerbase
- dispose_analysis_kind
- dispose_ownership_transfer_at_constructor
- dispose_ownership_transfer_at_method_call
- enum_values_prefix_trigger
- exclude_indirect_base_types
- additional_required_suffixes
- additional_required_generic_interfaces
- additional_inheritance_excluded_symbol_names
- analyzed_symbol_kinds
- use_naming_heuristic
- additional_use_results_methods
- allowed_suffixes
- enable_platform_analyzer_on_pre_net5_target
- exclude_structs
- additional_enum_none_names
- enumeration_methods
- linq_chain_methods
- assume_method_enumerates_parameters
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 , Message eller 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 |