Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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.
- 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
| 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 | truefalse |
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> |
truefalse |
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 |
truefalse |
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:
- dispose_analysis_kind
- dispose_ownership_transfer_at_constructor
- dispose_ownership_transfer_at_method_call
- interprocedural_analysis_kind
- max_interprocedural_lambda_or_local_function_call_chain
- max_interprocedural_method_call_chain
- copy_analysis
- sufficient_IterationCount_for_weak_KDF_algorithm
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 |