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.

Note

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.

Option scopes

Elke verfijningsoptie kan worden geconfigureerd voor alle regels, voor een categorie regels (bijvoorbeeld beveiliging of ontwerp) of voor een specifieke regel.

All rules

De syntaxis voor het configureren van een optie voor alle regels is als volgt:

Syntax Example
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:

Syntax Example
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

Specific rule

De syntaxis voor het configureren van een optie voor een specifieke regel is als volgt:

Syntax Example
dotnet_code_quality.<RuleId>.<OptionName> = <OptionValue> dotnet_code_quality.CA1040.api_surface = public

Options

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

api_surface

Description Allowable values Default value Configurable rules
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 CA1000CA1002CA1003CA1005CA1008CA1010CA1012CA1021CA1024CA1027CA1028CA1030CA1036CA1040CA1041CA1043CA1044CA1045CA1046CA1047CA1051CA1052CA1054CA1055CA1056CA1058CA1062CA1063CA1068CA1070CA1700CA1707CA1708CA1710CA1711CA1714CA1715CA1716CA1717CA1720CA1721CA1725CA1801CA1802CA1815CA1819CA1822CA1859CA2208CA2217CA2225CA2226CA2231CA2234

exclude_async_void_methods

Description Allowable values Default value Configurable rules
Of asynchrone methoden moeten worden genegeerd die geen waarde retourneren true
false
false CA2007

Note

Deze optie is genoemd skip_async_void_methods in een eerdere versie.

exclude_single_letter_type_parameters

Description Allowable values Default value Configurable rules
Of u parameters van één teken wilt uitsluiten van de regel, bijvoorbeeld S inCollection<S> true
false
false CA1715

Note

Deze optie is genoemd allow_single_letter_type_parameters in een eerdere versie.

output_kind

Description Allowable values Default value Configurable rules
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 CA1515, CA1516, CA2007

required_modifiers

Description Allowable values Default value Configurable rules
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
Allowed Modifier Summary
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

Description Allowable values Default value Configurable rules
Of u de analyse voor de this parameter van extensiemethoden wilt overslaan true
false
false CA1062

null_check_validation_methods

Description Allowable values Default value Configurable rules
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
None CA1062

additional_string_formatting_methods

Description Allowable values Default value Configurable rules
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
None CA2241

excluded_type_names_with_derived_types

Description Allowable values Default value Configurable rules
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
None CA1001CA1054CA1055CA1056CA1062CA1068CA1303CA1304CA1305CA1508CA2000CA2100CA2301CA2302CA2311CA2312CA2321CA2322CA2327CA2328CA2329CA2330CA3001CA3002CA3003CA3004CA3005CA3006CA3007CA3008CA3009CA3010CA3011CA3012CA5361CA5376CA5377CA5378CA5380CA5381CA5382CA5383CA5384CA5387CA5388CA5389CA5390CA5399CA5400

excluded_symbol_names

Description Allowable values Default value Configurable rules
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
None CA1001CA1054CA1055CA1056CA1062CA1068CA1303CA1304CA1305CA1508CA2000CA2100CA2301CA2302CA2311CA2312CA2321CA2322CA2327CA2328CA2329CA2330CA3001CA3002CA3003CA3004CA3005CA3006CA3007CA3008CA3009CA3010CA3011CA3012CA5361CA5376CA5377CA5378CA5380CA5381CA5382CA5383CA5384CA5387CA5388CA5389CA5390CA5399CA5400

disallowed_symbol_names

Description Allowable values Default value Configurable rules
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
None CA1031

exclude_ordefault_methods

Description Allowable values Default value Configurable rules
FirstOrDefault Sluit en LastOrDefault methoden uit van analyse. true of false false CA1826

ignore_internalsvisibleto

Description Allowable values Default value Configurable rules
Bevat assembly's die zijn gemarkeerd met InternalsVisibleToAttribute in analyse. true of false true CA1812CA1852

try_determine_additional_string_formatting_methods_automatically

Description Allowable values Default value Configurable rules
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

Description Allowable values Default value Configurable rules
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

Description Allowable values Default value Configurable rules
Sluit ASP.NET Core MVC ControllerBase uit bij het overwegen van CSRF true of false true CA5391

enum_values_prefix_trigger

Description Allowable values Default value Configurable rules
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

Description Allowable values Default value Configurable rules
Indirecte basistypen uitsluiten true of false true CA1710

additional_required_suffixes

Description Allowable values Default value Configurable rules
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.
None CA1710

additional_required_generic_interfaces

Description Allowable values Default value Configurable rules
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.
None CA1010

Examples:

Option Value Summary
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

Description Allowable values Default value Configurable rules
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

Description Allowable values Default value Configurable rules
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

Description Allowable values Default value Configurable rules
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

Description Allowable values Default value Configurable rules
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.
None CA1806

allowed_suffixes

Description Allowable values Default value Configurable rules
Hiermee geeft u toegestane achtervoegsels op Lijst met toegestane achtervoegsels (gescheiden door |). None CA1711

enable_platform_analyzer_on_pre_net5_target

Description Allowable values Default value Configurable rules
Hiermee geeft u op of analyse moet worden ingeschakeld voor TFM's vóór .NET 5 true of false false CA1416

exclude_structs

Description Allowable values Default value Configurable rules
Hiermee geeft u op of structs uit analyse moeten worden uitgesloten true of false false CA1051

additional_enum_none_names

Description Allowable values Default value Configurable rules
Hiermee geeft u aanvullende toegestane namen op voor een opsommingsveld met nulwaarden Lijst met extra namen (gescheiden door |). None CA1008

enumeration_methods

Description Allowable values Default value Configurable rules
Hiermee geeft u aanvullende aangepaste methoden op die een IEnumerable inventariseren Volledig gekwalificeerde namen van aanvullende methoden (gescheiden door |). None CA1851

linq_chain_methods

Description Allowable values Default value Configurable rules
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 |). None CA1851

assume_method_enumerates_parameters

Description Allowable values Default value Configurable rules
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

Description Allowable values Default value Configurable rules
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

Description Allowable values Default value Configurable rules
Eigendomsoverdracht configureren voor argumenten die worden doorgegeven aan aanroep van constructor true of false false CA2000

dispose_ownership_transfer_at_method_call

Description Allowable values Default value Configurable rules
Eigendomsoverdracht configureren voor wegwerpobjecten die als argumenten worden doorgegeven aan methode-aanroepen true of false false CA2000

interprocedural_analysis_kind

Description Allowable values Default value Configurable rules
Hiermee geeft u op of interprocedurale analyse moet worden uitgevoerd voor bronmethodeaanroepen None, , NonContextSensitiveContextSensitive Specifiek voor elke configureerbare regel CA1062, CA1303, CA1508, CA2000, CA2100, CA2213

max_interprocedural_method_call_chain

Description Allowable values Default value Configurable rules
Hiermee geeft u de maximale lengte van de aanroepketen aan die moet worden geanalyseerd voor interprocedurale gegevensstroomanalyse Unsigned integer 3 CA1062, CA1303, CA1508, CA2000, CA2100, CA2213

max_interprocedural_lambda_or_local_function_call_chain

Description Allowable values Default value Configurable rules
Hiermee geeft u de maximale lambda- of lokale functieaanroepketenlengte op die moet worden geanalyseerd voor interprocedurale gegevensstroomanalyse Unsigned integer 3 CA1062, CA1303, CA1508, CA2000, CA2100, CA2213

points_to_analysis_kind

Description Allowable values Default value Configurable rules
Geeft aan of PointsToAnalysis- uitgevoerd moet worden. None, , PartialWithoutTrackingFieldsAndPropertiesComplete Specifiek voor elke regel CA1062, CA1303, CA1508, CA2000, CA2100, CA2213

copy_analysis

Description Allowable values Default value Configurable rules
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

sufficient_IterationCount_for_weak_KDF_algorithm

Description Allowable values Default value Configurable rules
Configureert een voldoende iteratieaantal bij het gebruik van een KDF-algoritme (Weak Key Derivation Function) Integer 100.000 voor de meeste regels CA1062, CA1303, CA1508, CA2000, CA2100, CA2213