Configuratieopties voor codekwaliteitsregels
De codekwaliteitsregels hebben extra configuratieopties, naast het configureren van hun ernst. Elke codekwaliteitsanalyse kan bijvoorbeeld zo worden geconfigureerd dat deze alleen van toepassing is op specifieke onderdelen van uw codebasis. U geeft deze opties op door sleutel-waardeparen toe te voegen aan hetzelfde EditorConfig bestand waarin u de ernst van de regels en algemene editorvoorkeuren opgeeft.
Notitie
In dit artikel wordt niet beschreven hoe u de ernst van een regel configureert. De optie .editorconfig als u de ernst van een regel wilt instellen, heeft een ander voorvoegsel (dotnet_diagnostic
) voor de opties die hier worden beschreven (dotnet_code_quality
). Bovendien zijn de hier beschreven opties alleen van toepassing op regels voor codekwaliteit, terwijl de ernstoptie ook van toepassing is op regels voor codestijlen. Als snelzoekgids kunt u de ernst van een regel configureren met behulp van de volgende syntaxis van de optie:
dotnet_diagnostic.<rule ID>.severity = <severity value>
Zie ernstniveau voor gedetailleerde informatie over het configureren van de ernst van regels.
Optiebereiken
Elke verfijningsoptie kan worden geconfigureerd voor alle regels, voor een categorie regels (bijvoorbeeld beveiliging of ontwerp) of voor een specifieke regel.
Alle regels
De syntaxis voor het configureren van een optie voor alle regels is als volgt:
Syntaxis | Opmerking |
---|---|
dotnet_code_quality.<OptionName> = <OptionValue> | dotnet_code_quality.api_surface = public |
De waarden voor <OptionName>
worden weergegeven onder Opties.
Categorie regels
De syntaxis voor het configureren van een optie voor een categorie regels is als volgt:
Syntaxis | Opmerking |
---|---|
dotnet_code_quality.<RuleCategory>.<OptionName> = OptionValue | dotnet_code_quality.Naming.api_surface = public |
De volgende tabel bevat de beschikbare waarden voor <RuleCategory>
.
Design
Documentation
Globalization
Interoperability
Maintainability
Naming
Performance
SingleFile
Reliability
Security
Usage
Specifieke regel
De syntaxis voor het configureren van een optie voor een specifieke regel is als volgt:
Syntaxis | Opmerking |
---|---|
dotnet_code_quality.<RuleId>.<OptionName> = <OptionValue> | dotnet_code_quality.CA1040.api_surface = public |
Opties
In deze sectie vindt u een aantal van de beschikbare opties. Zie Analyzer-configuratie voor een volledige lijst met beschikbare opties.
- 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
Beschrijving | Toegestane waarden | Default value | Configureerbare regels |
---|---|---|---|
Welk deel van het API-oppervlak moet worden geanalyseerd | public (van toepassing op public en protected API's)internal of friend (van toepassing op internal en private protected API's)private (van toepassing op private API's)all (van toepassing op alle API's)Meerdere waarden scheiden met een komma (,) |
public |
CA1000 CA1002 CA1003 CA1005 CA1008 CA1010 CA1012 CA1021 CA1024 CA1027 CA1028 CA1030 CA1036 CA1036 CA1040 CA1041 CA1043 CA1044 CA1045 CA1046 CA1047 CA1051 CA1052 CA1054 CA1055 CA1056 CA1058 CA1062 CA1063 CA1068 CA1070 CA1700 CA1707 CA1708 CA1710 CA1710 CA1714 CA1715 CA1716 CA171717 CA1720 CA1721 CA1725 CA1801 CA1802 CA1815 CA1819 CA1822 CA1859 CA2208 CA2217 CA2225 CA2226 CA2231 CA2234 |
exclude_async_void_methods
Beschrijving | Toegestane waarden | Default value | Configureerbare regels |
---|---|---|---|
Of asynchrone methoden moeten worden genegeerd die geen waarde retourneren | true false |
false |
CA2007 |
Notitie
Deze optie is genoemd skip_async_void_methods
in een eerdere versie.
exclude_single_letter_type_parameters
Beschrijving | Toegestane waarden | Default value | Configureerbare regels |
---|---|---|---|
Of u parameters van één teken wilt uitsluiten van de regel, bijvoorbeeld S inCollection<S> |
true false |
false |
CA1715 |
Notitie
Deze optie is genoemd allow_single_letter_type_parameters
in een eerdere versie.
output_kind
Beschrijving | Toegestane waarden | Default value | Configureerbare regels |
---|---|---|---|
Hiermee geeft u op dat code in een project dat dit type assembly genereert, moet worden geanalyseerd | Een of meer velden van de OutputKind opsomming Meerdere waarden scheiden met een komma (,) |
Alle uitvoertypen | CA2007 |
required_modifiers
Beschrijving | Toegestane waarden | Default value | Configureerbare regels |
---|---|---|---|
Hiermee geeft u de vereiste modifiers voor API's die moeten worden geanalyseerd | Een of meer waarden uit de onderstaande tabel toegestane modifiers Meerdere waarden scheiden met een komma (,) |
Afhankelijk van elke regel | CA1802 |
Toegestane modifier | Samenvatting |
---|---|
none |
Geen wijzigingsvereiste |
static of Shared |
Moet worden gedeclareerd als static (Shared in Visual Basic) |
const |
Moet worden gedeclareerd als const |
readonly |
Moet worden gedeclareerd als readonly |
abstract |
Moet worden gedeclareerd als abstract |
virtual |
Moet worden gedeclareerd als virtual |
override |
Moet worden gedeclareerd als override |
sealed |
Moet worden gedeclareerd als sealed |
extern |
Moet worden gedeclareerd als extern |
async |
Moet worden gedeclareerd als async |
exclude_extension_method_this_parameter
Beschrijving | Toegestane waarden | Default value | Configureerbare regels |
---|---|---|---|
Of u de analyse voor de this parameter van extensiemethoden wilt overslaan |
true false |
false |
CA1062 |
null_check_validation_methods
Beschrijving | Toegestane waarden | Default value | Configureerbare regels |
---|---|---|---|
Namen van validatiemethoden voor null-controles die valideren dat argumenten die aan de methode zijn doorgegeven, niet-null zijn | Indelingen voor toegestane methodenamen (gescheiden door |): - Alleen methodenaam (inclusief alle methoden met de naam, ongeacht het type of de naamruimte) - Volledig gekwalificeerde namen in de documentatie-id-indeling van het symbool, met een optioneel M: voorvoegsel |
Geen | CA1062 |
additional_string_formatting_methods
Beschrijving | Toegestane waarden | Default value | Configureerbare regels |
---|---|---|---|
Namen van aanvullende tekenreeksopmaakmethoden | Indelingen voor toegestane methodenamen (gescheiden door |): - Alleen methodenaam (inclusief alle methoden met de naam, ongeacht het type of de naamruimte) - Volledig gekwalificeerde namen in de documentatie-id-indeling van het symbool, met een optioneel M: voorvoegsel |
Geen | CA2241 |
excluded_type_names_with_derived_types
Beschrijving | Toegestane waarden | Default value | Configureerbare regels |
---|---|---|---|
Namen van typen, zodat het type en alle afgeleide typen worden uitgesloten voor analyse | Toegestane notaties voor symboolnamen (gescheiden door |): - Typ alleen de naam (inclusief alle typen met de naam, ongeacht het type of de naamruimte) - Volledig gekwalificeerde namen in de documentatie-id-indeling van het symbool, met een optioneel T: voorvoegsel |
Geen | 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 CA53378 CA5380 CA5381 CA5382 CA5383 CA5384 CA5387 CA5388 CA5389 CA5390 CA5399 CA5400 |
excluded_symbol_names
Beschrijving | Toegestane waarden | Default value | Configureerbare regels |
---|---|---|---|
Namen van symbolen die zijn uitgesloten voor analyse | Toegestane notaties voor symboolnamen (gescheiden door |): - Alleen symboolnaam (inclusief alle symbolen met de naam, ongeacht het type of de naamruimte) - Volledig gekwalificeerde namen in de documentatie-id-indeling van het symbool. Voor elke symboolnaam is een voorvoegsel voor het type symbool vereist, zoals M: voorvoegsel voor methoden, T: voorvoegsel voor typen en N: voorvoegsel voor naamruimten.- .ctor voor constructors en .cctor voor statische constructors |
Geen | 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 CA53378 CA5380 CA5381 CA5382 CA5383 CA5384 CA5387 CA5388 CA5389 CA5390 CA5399 CA5400 |
disallowed_symbol_names
Beschrijving | Toegestane waarden | Default value | Configureerbare regels |
---|---|---|---|
Namen van symbolen die niet zijn toegestaan in de context van de analyse | Toegestane notaties voor symboolnamen (gescheiden door |): - Alleen symboolnaam (inclusief alle symbolen met de naam, ongeacht het type of de naamruimte) - Volledig gekwalificeerde namen in de documentatie-id-indeling van het symbool. Voor elke symboolnaam is een voorvoegsel voor het type symbool vereist, zoals M: voorvoegsel voor methoden, T: voorvoegsel voor typen en N: voorvoegsel voor naamruimten.- .ctor voor constructors en .cctor voor statische constructors |
Geen | CA1031 |
exclude_ordefault_methods
Beschrijving | Toegestane waarden | Default value | Configureerbare regels |
---|---|---|---|
FirstOrDefault Sluit en LastOrDefault methoden uit van analyse. |
true of false |
false |
CA1826 |
ignore_internalsvisibleto
Beschrijving | Toegestane waarden | Default value | Configureerbare regels |
---|---|---|---|
Bevat assembly's die zijn gemarkeerd met InternalsVisibleToAttribute in analyse. | true of false |
true |
CA1812 CA1852 |
try_determine_additional_string_formatting_methods_automatically
Beschrijving | Toegestane waarden | Default value | Configureerbare regels |
---|---|---|---|
Booleaanse optie voor het inschakelen van heuristische detectie van aanvullende tekenreeksopmaakmethoden. Een methode wordt beschouwd als een tekenreeksopmaakmethode als deze een string format parameter heeft gevolgd door een params object[] parameter. |
true of false |
false |
CA2241 |
unsafe_DllImportSearchPath_bits
Beschrijving | Toegestane waarden | Default value | Configureerbare regels |
---|---|---|---|
Configureren van welke waarde DllImportSearchPath onveilig is voor de analyse |
Gehele getallen van System.Runtime.InteropServices.DllImportSearchPath |
770 (dat wil gezegd, AssemblyDirectory | UseDllDirectoryForDependencies | ApplicationDirectory ) |
CA5393 |
exclude_aspnet_core_mvc_controllerbase
Beschrijving | Toegestane waarden | Default value | Configureerbare regels |
---|---|---|---|
Sluit ASP.NET Core MVC ControllerBase uit bij het overwegen van CSRF | true of false |
true |
CA5391 |
dispose_analysis_kind
Beschrijving | Toegestane waarden | Default value | Configureerbare regels |
---|---|---|---|
Hiermee geeft u op welke paden moeten worden geanalyseerd voor verwijderingsschendingen | - AllPaths - Ontbrekende verwijderingsschendingen voor alle paden bijhouden en rapporteren (niet-uitzonderings- en uitzonderingspaden). Daarnaast markeert u ook het gebruik van niet-aanbevolen verwijderingspatronen die mogelijke verwijderingslekken kunnen veroorzaken.- AllPathsOnlyNotDisposed - Ontbrekende verwijderingsschendingen voor alle paden bijhouden en rapporteren (niet-uitzonderings- en uitzonderingspaden). Markeer het gebruik van niet-aanbevolen verwijderingspatronen die mogelijk leiden tot verwijderingslekken niet markeren.- NonExceptionPaths - Ontbrekende verwijderingsschendingen alleen bijhouden en rapporteren op niet-uitzonderingsprogrammapaden. Daarnaast markeert u ook het gebruik van niet-aanbevolen verwijderingspatronen die mogelijke verwijderingslekken kunnen veroorzaken.- NonExceptionPathsOnlyNotDisposed - Ontbrekende verwijderingsschendingen alleen bijhouden en rapporteren op niet-uitzonderingsprogrammapaden. Markeer het gebruik van niet-aanbevolen verwijderingspatronen die mogelijk leiden tot verwijderingslekken niet markeren. |
NonExceptionPaths |
CA2000 |
dispose_ownership_transfer_at_constructor
Beschrijving | Toegestane waarden | Default value | Configureerbare regels |
---|---|---|---|
Eigendomsoverdracht configureren voor argumenten die worden doorgegeven aan aanroep van constructor | true of false |
false |
CA2000 |
dispose_ownership_transfer_at_method_call
Beschrijving | Toegestane waarden | Default value | Configureerbare regels |
---|---|---|---|
Eigendomsoverdracht configureren voor wegwerpobjecten die als argumenten worden doorgegeven aan methode-aanroepen | true of false |
false |
CA2000 |
enum_values_prefix_trigger
Beschrijving | Toegestane waarden | Default value | Configureerbare regels |
---|---|---|---|
Hiermee geeft u de drempelwaarde op voor het activeren van de naamgevingsregel voor enumwaarden | - AnyEnumValue - De regel wordt geactiveerd als een van de enum-waarden begint met de naam van het enum-type.- AllEnumValues - De regel wordt geactiveerd als alle enumwaarden beginnen met de naam van het enum-type.- Heuristic - De regel wordt geactiveerd met behulp van de standaard FxCop-heuristiek (dat wil gezegd, wanneer ten minste 75% van de enum-waarden beginnen met de naam van het enum-type). |
Heuristic |
CA1712 |
exclude_indirect_base_types
Beschrijving | Toegestane waarden | Default value | Configureerbare regels |
---|---|---|---|
Indirecte basistypen uitsluiten | true of false |
true |
CA1710 |
additional_required_suffixes
Beschrijving | Toegestane waarden | Default value | Configureerbare regels |
---|---|---|---|
Hiermee geeft u aanvullende vereiste achtervoegsels op | Lijst met typenamen (gescheiden door |) met het vereiste achtervoegsel (gescheiden door -> ). Toegestane indelingen voor typenamen:- Typ alleen naam (bevat alle typen met de naam, ongeacht het type of de naamruimte). - Volledig gekwalificeerde namen in de documentatie-id-indeling van het symbool met een optioneel T: voorvoegsel. |
Geen | CA1710 |
additional_required_generic_interfaces
Beschrijving | Toegestane waarden | Default value | Configureerbare regels |
---|---|---|---|
Hiermee geeft u aanvullende vereiste algemene interfaces | Lijst met interfacenamen (gescheiden door |) met de vereiste algemene volledig gekwalificeerde interface (gescheiden door -> ). Toegestane interface-indelingen:- Interfacenaam alleen (bevat alle interfaces met de naam, ongeacht het type of de naamruimte). - Volledig gekwalificeerde namen in de documentatie-id-indeling van het symbool met een optioneel T: voorvoegsel. |
Geen | CA1010 |
Voorbeelden:
Optiewaarde | Samenvatting |
---|---|
dotnet_code_quality.CA1010.additional_required_generic_interfaces = ISomething->System.Collections.Generic.IEnumerable`1 |
Alle typen die worden geïmplementeerd ISomething , ongeacht de naamruimte, worden naar verwachting ook geïmplementeerd System.Collections.Generic.IEnumerable\`1 . |
dotnet_code_quality.CA1010.additional_required_generic_interfaces = T:System.Collections.IDictionary->T:System.Collections.Generic.IDictionary`2 |
Alle typen die System.Collections.IDictionary worden geïmplementeerd, worden naar verwachting ook geïmplementeerd System.Collections.Generic.IDictionary`2 . |
additional_inheritance_excluded_symbol_names
Beschrijving | Toegestane waarden | Default value | Configureerbare regels |
---|---|---|---|
Hiermee geeft u typen of naamruimten die moeten worden uitgesloten van de overnamehiërarchiestructuur | Toegestane indelingen voor typenamen: - Type- of naamruimtenaam (bevat alle typen met de naam, ongeacht het type of de naamruimte, en alle typen waarvan de naamruimte de naam bevat). - Typ of naamruimtenaam die eindigt op een jokerteken (bevat alle typen waarvan de naam begint met de opgegeven naam, ongeacht het type of de naamruimte, en alle typen waarvan de naamruimte de naam bevat). - Volledig gekwalificeerde namen in de documentatie-id-indeling van het symbool met een optioneel T: voorvoegsel voor typen of N: voorvoegsel voor naamruimten.- Volledig gekwalificeerde type- of naamruimtenaam met een optioneel T: voorvoegsel voor type of N: voorvoegsel voor naamruimte en eindigend met het jokerteken (inclusief alle typen waarvan de volledig gekwalificeerde naam begint met de opgegeven typenaam, of alle typen waarvan de volledig gekwalificeerde naam begint met de opgegeven naamruimtenaam). |
N:System.* (Deze waarde wordt altijd automatisch toegevoegd aan de opgegeven waarde) |
CA1501 |
analyzed_symbol_kinds
Beschrijving | Toegestane waarden | Default value | Configureerbare regels |
---|---|---|---|
Hiermee geeft u de te analyseren symbooltypen | Een of meer velden van SymbolKind een door komma's gescheiden lijst. | Namespace, NamedType, Method, Property, Event, Parameter |
CA1716 |
use_naming_heuristic
Beschrijving | Toegestane waarden | Default value | Configureerbare regels |
---|---|---|---|
Hiermee configureert u of parameters of eigenschapsnamen deze regel bevatten Text , Message of Caption deze regel activeren |
true of false |
false |
CA1303 |
additional_use_results_methods
Beschrijving | Toegestane waarden | Default value | Configureerbare regels |
---|---|---|---|
Hiermee geeft u aanvullende aangepaste API's waarvan de resultaten moeten worden gebruikt | Namen van aanvullende methoden (gescheiden door |). Indelingen voor toegestane methodenamen: - Alleen methodenaam (bevat alle methoden met de naam, ongeacht het type of de naamruimte). - Volledig gekwalificeerde namen in de documentatie-id-indeling van het symbool met een optioneel M: voorvoegsel. |
Geen | CA1806 |
allowed_suffixes
Beschrijving | Toegestane waarden | Default value | Configureerbare regels |
---|---|---|---|
Hiermee geeft u toegestane achtervoegsels op | Lijst met toegestane achtervoegsels (gescheiden door |). | Geen | CA1711 |
enable_platform_analyzer_on_pre_net5_target
Beschrijving | Toegestane waarden | Default value | Configureerbare regels |
---|---|---|---|
Hiermee geeft u op of analyse moet worden ingeschakeld voor TFM's vóór .NET 5 | true of false |
false |
CA1416 |
exclude_structs
Beschrijving | Toegestane waarden | Default value | Configureerbare regels |
---|---|---|---|
Hiermee geeft u op of structs uit analyse moeten worden uitgesloten | true of false |
false |
CA1051 |
additional_enum_none_names
Beschrijving | Toegestane waarden | Default value | Configureerbare regels |
---|---|---|---|
Hiermee geeft u aanvullende toegestane namen op voor een opsommingsveld met nulwaarden | Lijst met extra namen (gescheiden door |). | Geen | CA1008 |
enumeration_methods
Beschrijving | Toegestane waarden | Default value | Configureerbare regels |
---|---|---|---|
Hiermee geeft u aanvullende aangepaste methoden op die een IEnumerable inventariseren | Volledig gekwalificeerde namen van aanvullende methoden (gescheiden door |). | Geen | CA1851 |
linq_chain_methods
Beschrijving | Toegestane waarden | Default value | Configureerbare regels |
---|---|---|---|
Hiermee geeft u aanvullende aangepaste LINQ-ketenmethoden op (dat wil gezegd: methoden nemen een IEnumerable argument en retourneren een nieuw IEnumerable exemplaar) |
Volledig gekwalificeerde namen van aanvullende methoden (gescheiden door |). | Geen | CA1851 |
assume_method_enumerates_parameters
Beschrijving | Toegestane waarden | Default value | Configureerbare regels |
---|---|---|---|
Hiermee geeft u op of wordt ervan uitgegaan dat aangepaste methoden hun IEnumerable parameters opsommen |
true of false |
false |
CA1851 |