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.
- additional_enum_none_names
- additional_inheritance_excluded_symbol_names
- additional_required_generic_interfaces
- additional_required_suffixes
- additional_use_results_methods
- additional_string_formatting_methods
- allowed_suffixes
- analyzed_symbol_kinds
- api_surface
- assume_method_enumerates_parameters
- opties voor gegevensstroomanalyse
- disallowed_symbol_names
- enable_platform_analyzer_on_pre_net5_target
- enum_values_prefix_trigger
- enumeration_methods
- exclude_aspnet_core_mvc_controllerbase
- exclude_indirect_base_types
- exclude_structs
- exclude_async_void_methods
- exclude_extension_method_this_parameter
- exclude_ordefault_methods
- exclude_single_letter_type_parameters
- excluded_symbol_names
- excluded_type_names_with_derived_types
- ignore_internalsvisibleto
- linq_chain_methods
- null_check_validation_methods
- output_kind
- points_to_analysis_kind
- required_modifiers
- try_determine_additional_string_formatting_methods_automatically
- unsafe_DllImportSearchPath_bits
- use_naming_heuristic
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 , 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 |
Opties voor analyse van gegevensstromen
Met de opties in deze sectie configureert u regels voor gegevensstroomanalyse. De opties zijn:
- dispose_analysis_kind
- dispose_ownership_transfer_at_constructor
- dispose_ownership_transfer_at_method_call
- interprocedurele_analyse_soort
- max_interprocedural_lambda_or_local_function_call_chain
- max_interprocedural_method_call_chain
- kopie_analyse
- voldoende_IteratieAantal_voor_zwak_KDF_algoritme
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 |