Delen via


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

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, Messageof 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