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 om de ernst van een regel in te stellen, heeft een ander voorvoegsel (dotnet_diagnostic) voor de hier beschreven opties (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

Deze sectie bevat de beschikbare configuratieopties voor codeanalyses. Zie Analyzer-configuratievoor meer informatie.

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 CA1000CA1002CA1003CA1005CA1008CA1010CA1012CA1021CA1024CA1027CA1028CA1030CA1036CA1040CA1041CA1043CA1044CA1045CA1046CA1047CA1051CA1052CA1054CA1055CA1056CA1058fCA1063CA1068CA1070CA1700CA1707CA1708CA1710CA1711CA1714CA1715CA1716CA1717CA1720CA1721CA1725CA1801CA1802CA1815CA1819CA1822CA1859CA2208CA2217CA2225CA2226CA2231CA2234

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 CA1054CA1055CA1056 CA1062CA1068CA1303CA1304CA1305CA1508CA2000CA2100CA2301CA2302CA2311CA2312CA2321CA2322CA2327CA2328CA2329CA2330CA3001CA3002CA3003CA3004CA3005CA3006CA3007CA3008CA3009CA3010CA3011CA3012CA5361CA5376CA5377CA53378CA5380CA5381CA5382CA5383 CA5384 CA5387CA5388CA5389CA5390CA5399CA5400

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 CA1054CA1055CA1056 CA1062CA1068CA1303CA1304CA1305CA1508CA2000CA2100CA2301CA2302CA2311CA2312CA2321CA2322CA2327CA2328CA2329CA2330CA3001CA3002CA3003CA3004CA3005CA3006CA3007CA3008CA3009CA3010CA3011CA3012CA5361CA5376CA5377CA53378CA5380CA5381CA5382CA5383 CA5384 CA5387CA5388CA5389CA5390CA5399CA5400

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 CA1812CA1852

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

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

Opties voor analyse van gegevensstromen

Met de opties in deze sectie configureert u regels voor gegevensstroomanalyse. De opties zijn:

Zie Analyse op basis van gegevensstromen schrijvenvoor meer informatie over gegevensstroomanalyse.

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

interprocedurale_analyse_soort

Beschrijving Toegestane waarden Default value Configureerbare regels
Hiermee geeft u op of interprocedurale analyse moet worden uitgevoerd voor bronmethodeaanroepen None, NonContextSensitive, ContextSensitive Specifiek voor elke configureerbare regel CA1062, CA1303, CA1508, CA2000, CA2100, CA2213

maximale_interprocedurele_methodeoproepketen

Beschrijving Toegestane waarden Default value Configureerbare regels
Hiermee geeft u de maximale lengte van de aanroepketen aan die moet worden geanalyseerd voor interprocedurale gegevensstroomanalyse Ongesigneerd geheel getal 3 CA1062, CA1303, CA1508, CA2000, CA2100, CA2213

maximale_interprocedurale_lambda_of_lokale_functie_oproepketen

Beschrijving Toegestane waarden Default value Configureerbare regels
Hiermee geeft u de maximale lambda- of lokale functieaanroepketenlengte op die moet worden geanalyseerd voor interprocedurale gegevensstroomanalyse Ongedefinieerd geheel getal 3 CA1062, CA1303, CA1508, CA2000, CA2100, CA2213

wijst_naar_analyse_type

Beschrijving Toegestane waarden Default value Configureerbare regels
Geeft aan of PointsToAnalysis- uitgevoerd moet worden. None, PartialWithoutTrackingFieldsAndProperties, Complete Specifiek voor elke regel CA1062, CA1303, CA1508, CA2000, CA2100, CA2213

kopie_analysatie

Beschrijving Toegestane waarden Default value Configureerbare regels
Hiermee specificeert u of kopieeranalyse moet worden uitgevoerd (houdt waardekopieën en verwijzingskopieën bij) true of false true voor de meeste regels CA1062, CA1303, CA1508, CA2000, CA2100, CA2213

voldoende_IteratieAantal_voor_zwak_KDF-algoritme

Beschrijving Toegestane waarden Default value Configureerbare regels
Configureert een voldoende iteratieaantal bij het gebruik van een KDF-algoritme (Weak Key Derivation Function) Geheel getal 100.000 voor de meeste regels CA1062, CA1303, CA1508, CA2000, CA2100, CA2213