Konfigurationsoptionen für Codequalitätsregeln
Die Codequalitätsregeln verfügen über zusätzliche Konfigurationsoptionen, die über die Konfiguration des Schweregrads hinausgehen. Beispielsweise kann jedes Codequalitäts-Analysetool so konfiguriert werden, dass es nur für bestimmte Teile Ihrer Codebasis gilt. Sie geben diese Optionen an, indem Sie Schlüssel-Wert-Paare zur gleichen EditorConfig-Datei hinzufügen, in der Sie Regelschweregrade und allgemeine Editor-Einstellungen angeben.
Hinweis
In diesem Artikel wird nicht beschrieben, wie der Schweregrad einer Regel konfiguriert wird. Die option .editorconfig zum Festlegen des Schweregrads einer Regel hat ein anderes Präfix (dotnet_diagnostic
) zu den hier beschriebenen Optionen (dotnet_code_quality
). Darüber hinaus beziehen sich die hier beschriebenen Optionen nur auf Regeln der Codequalität, während die Schweregradoption auch für Regeln des Codestils gilt. Als Kurzübersicht können Sie den Schweregrad einer Regel mithilfe der folgenden Optionssyntax konfigurieren:
dotnet_diagnostic.<rule ID>.severity = <severity value>
Ausführliche Informationen zum Konfigurieren des Schweregrads der Regel finden Sie unter Schweregrad.
Option „Bereiche“
Jede Verfeinerungsoption kann für alle Regeln, für eine Kategorie von Regeln (z. B. Sicherheit oder Design) oder für eine bestimmte Regel konfiguriert werden.
Alle Regeln
Die Syntax zum Konfigurieren einer Option für alle Regeln lautet wie folgt:
Syntax | Beispiel |
---|---|
dotnet_code_quality.<OptionName> = <OptionValue> | dotnet_code_quality.api_surface = public |
Die Werte für <OptionName>
werden unter Optionen aufgeführt.
Kategorie von Regeln
Die Syntax zum Konfigurieren einer Option für eine Kategorie von Regeln lautet wie folgt:
Syntax | Beispiel |
---|---|
dotnet_code_quality.<RuleCategory>.<OptionName> = OptionValue | dotnet_code_quality.Naming.api_surface = public |
In der folgenden Tabelle werden die verfügbaren Werte für <RuleCategory>
aufgelistet.
Design
Documentation
Globalization
Interoperability
Maintainability
Naming
Performance
SingleFile
Reliability
Security
Usage
Bestimmte Regel
Die Syntax zum Konfigurieren einer Option für eine bestimmte Regel lautet wie folgt:
Syntax | Beispiel |
---|---|
dotnet_code_quality.<RuleId>.<OptionName> = <OptionValue> | dotnet_code_quality.CA1040.api_surface = public |
Tastatur
In diesem Abschnitt werden einige der verfügbaren Optionen aufgeführt. Die vollständige Liste der verfügbaren Optionen finden Sie unter Analysetoolkonfiguration.
- api_surface
- exclude_async_void_methods
- exclude_single_letter_type_parameters
- output_kind
- required_modifiers
- exclude_extension_method_this_parameter
- null_check_validation_methods
- additional_string_formatting_methods
- excluded_type_names_with_derived_types
- excluded_symbol_names
- disallowed_symbol_names
- exclude_ordefault_methods
- ignore_internalsvisibleto
- try_determine_additional_string_formatting_methods_automatically
- unsafe_DllImportSearchPath_bits
- exclude_aspnet_core_mvc_controllerbase
- dispose_analysis_kind
- dispose_ownership_transfer_at_constructor
- dispose_ownership_transfer_at_method_call
- enum_values_prefix_trigger
- exclude_indirect_base_types
- additional_required_suffixes
- additional_required_generic_interfaces
- additional_inheritance_excluded_symbol_names
- analyzed_symbol_kinds
- use_naming_heuristic
- additional_use_results_methods
- allowed_suffixes
- enable_platform_analyzer_on_pre_net5_target
- exclude_structs
- additional_enum_none_names
- enumeration_methods
- linq_chain_methods
- assume_method_enumerates_parameters
api_surface
Beschreibung | Zulässige Werte | Standardwert | Konfigurierbare Regeln |
---|---|---|---|
Der zu analysierende Teil der API-Oberfläche | public (gilt für public - und protected -APIs)internal oder friend (gilt für internal - und private protected -APIs)private (gilt für private -APIs)all (gilt für alle APIs)Trennen Sie mehrere Werte durch ein Komma (,) |
public |
CA1000CA1002CA1003CA1005CA1008CA1010CA1012CA1021CA1024CA1027CA1028CA1030CA1036CA1040CA1041CA1043CA1044CA1045CA1046CA1047CA1051CA1052CA1054CA1055CA1056CA1058CA1062CA1063CA1068CA1070CA1700CA1707CA1708CA1710CA1711CA1714CA1715CA1716CA1717CA1720CA1721CA1725CA1801CA1802CA1815CA1819CA1822CA1859CA2208CA2217CA2225CA2226CA2231CA2234 |
exclude_async_void_methods
Beschreibung | Zulässige Werte | Standardwert | Konfigurierbare Regeln |
---|---|---|---|
Gibt an, ob asynchrone Methoden ignoriert werden sollen, die keinen Wert zurückgeben. | true false |
false |
CA2007 |
Hinweis
Diese Option trug in einer früheren Version den Namen skip_async_void_methods
.
exclude_single_letter_type_parameters
Beschreibung | Zulässige Werte | Standardwert | Konfigurierbare Regeln |
---|---|---|---|
Gibt an, ob Typparameter mit einem Zeichen aus der Regel ausgeschlossen werden sollen, z. B. S in Collection<S> . |
true false |
false |
CA1715 |
Hinweis
Diese Option trug in einer früheren Version den Namen allow_single_letter_type_parameters
.
output_kind
Beschreibung | Zulässige Werte | Standardwert | Konfigurierbare Regeln |
---|---|---|---|
Gibt an, dass Code in einem Projekt analysiert werden soll, der diesen Assemblytyp generiert. | Mindestens ein Feld der OutputKind-Enumeration Trennen Sie mehrere Werte durch ein Komma (,) |
Alle Ausgabearten | CA2007 |
required_modifiers
Beschreibung | Zulässige Werte | Standardwert | Konfigurierbare Regeln |
---|---|---|---|
Gibt die erforderlichen Modifizierer für APIs an, die analysiert werden sollen. | Mindestens ein Wert aus der Tabelle unten mit zulässigen Modifizierern Trennen Sie mehrere Werte durch ein Komma (,) |
Hängt von jeweiligen Regel ab | CA1802 |
Zulässiger Modifizierer | Zusammenfassung |
---|---|
none |
Keine Modifiziereranforderung |
static oder Shared |
Muss als static (Shared in Visual Basic) deklariert werden. |
const |
Muss als const deklariert werden. |
readonly |
Muss als readonly deklariert werden. |
abstract |
Muss als abstract deklariert werden. |
virtual |
Muss als virtual deklariert werden. |
override |
Muss als override deklariert werden. |
sealed |
Muss als sealed deklariert werden. |
extern |
Muss als extern deklariert werden. |
async |
Muss als async deklariert werden. |
exclude_extension_method_this_parameter
Beschreibung | Zulässige Werte | Standardwert | Konfigurierbare Regeln |
---|---|---|---|
Gibt an, ob die Analyse für den this -Parameter von Erweiterungsmethoden übersprungen werden soll. |
true false |
false |
CA1062 |
null_check_validation_methods
Beschreibung | Zulässige Werte | Standardwert | Konfigurierbare Regeln |
---|---|---|---|
Namen von Validierungsmethoden für NULL-Überprüfung, die überprüfen, ob die an die Methode übergebenen Argumente nicht NULL sind. | Zulässige Methodennamenformate (durch | getrennt): – Nur Methodenname (schließt alle Methoden mit dem Namen ein, unabhängig vom enthaltenden Typ oder Namespace) – Vollqualifizierte Namen im Dokumentations-ID-Format des Symbols mit einem optionalen Präfix M: |
Keine | CA1062 |
additional_string_formatting_methods
Beschreibung | Zulässige Werte | Standardwert | Konfigurierbare Regeln |
---|---|---|---|
Namen von zusätzlichen Zeichenfolgen-Formatierungsmethoden | Zulässige Methodennamenformate (durch | getrennt): – Nur Methodenname (schließt alle Methoden mit dem Namen ein, unabhängig vom enthaltenden Typ oder Namespace) – Vollqualifizierte Namen im Dokumentations-ID-Format des Symbols mit einem optionalen Präfix M: |
Keine | CA2241 |
excluded_type_names_with_derived_types
Beschreibung | Zulässige Werte | Standardwert | Konfigurierbare Regeln |
---|---|---|---|
Namen von Typen, sodass der Typ und alle abgeleiteten Typen für die Analyse ausgeschlossen sind | Zulässige Symbolnamenformate (durch | getrennt): – Nur Typname (schließt alle Typen mit dem Namen ein, unabhängig vom enthaltenden Typ oder Namespace) – Vollqualifizierte Namen im Dokumentations-ID-Format des Symbols mit einem optionalen Präfix T: |
Keine | CA1001CA1054CA1055CA1056CA1062CA1068CA1303CA1304CA1305CA1508CA2000CA2100CA2301CA2302CA2311CA2312CA2321CA2322CA2327CA2328CA2329CA2330CA3001CA3002CA3003CA3004CA3005CA3006CA3007CA3008CA3009CA3010CA3011CA3012CA5361CA5376CA5377CA5378CA5380CA5381CA5382CA5383CA5384CA5387CA5388CA5389CA5390CA5399CA5400 |
excluded_symbol_names
Beschreibung | Zulässige Werte | Standardwert | Konfigurierbare Regeln |
---|---|---|---|
Namen von Symbolen, die für die Analyse ausgeschlossen sind | Zulässige Symbolnamenformate (durch | getrennt): – Nur Symbolname (schließt alle Symbole mit dem Namen ein, unabhängig vom enthaltenden Typ oder Namespace) – Vollqualifizierte Namen im Dokumentations-ID-Format des Symbols. Jeder Symbolname erfordert ein Symbolartpräfix, z. B. das Präfix M: für Methoden, das Präfix T: für Typen und das Präfix N: für Namespaces.- .ctor für Konstruktoren und .cctor für statische Konstruktoren |
Keine | CA1001CA1054CA1055CA1056CA1062CA1068CA1303CA1304CA1305CA1508CA2000CA2100CA2301CA2302CA2311CA2312CA2321CA2322CA2327CA2328CA2329CA2330CA3001CA3002CA3003CA3004CA3005CA3006CA3007CA3008CA3009CA3010CA3011CA3012CA5361CA5376CA5377CA5378CA5380CA5381CA5382CA5383CA5384CA5387CA5388CA5389CA5390CA5399CA5400 |
disallowed_symbol_names
Beschreibung | Zulässige Werte | Standardwert | Konfigurierbare Regeln |
---|---|---|---|
Namen von Symbolen, die im Kontext der Analyse unzulässig sind | Zulässige Symbolnamenformate (durch | getrennt): – Nur Symbolname (schließt alle Symbole mit dem Namen ein, unabhängig vom enthaltenden Typ oder Namespace) – Vollqualifizierte Namen im Dokumentations-ID-Format des Symbols. Jeder Symbolname erfordert ein Symbolartpräfix, z. B. das Präfix M: für Methoden, das Präfix T: für Typen und das Präfix N: für Namespaces.- .ctor für Konstruktoren und .cctor für statische Konstruktoren |
Keine | CA1031 |
exclude_ordefault_methods
Beschreibung | Zulässige Werte | Standardwert | Konfigurierbare Regeln |
---|---|---|---|
Schließt die Methoden FirstOrDefault und LastOrDefault von der Analyse aus. |
true oder false |
false |
CA1826 |
ignore_internalsvisibleto
Beschreibung | Zulässige Werte | Standardwert | Konfigurierbare Regeln |
---|---|---|---|
Enthält Assemblys, die in der Analyse mit InternalsVisibleToAttribute gekennzeichnet sind. | true oder false |
true |
CA1812CA1852 |
try_determine_additional_string_formatting_methods_automatically
Beschreibung | Zulässige Werte | Standardwert | Konfigurierbare Regeln |
---|---|---|---|
Boolesche Option zum Aktivieren der heuristischen Erkennung zusätzlicher Zeichenfolgenformatierungsmethoden. Eine Methode, die über einen string format -Parameter gefolgt von einem params object[] -Parameter verfügt, wird als Zeichenfolgen-Formatierungsmethode betrachtet. |
true oder false |
false |
CA2241 |
unsafe_DllImportSearchPath_bits
Beschreibung | Zulässige Werte | Standardwert | Konfigurierbare Regeln |
---|---|---|---|
Konfigurieren Sie, welcher Wert von DllImportSearchPath für die Analyse unsicher ist. |
Ganzzahlige Werte von System.Runtime.InteropServices.DllImportSearchPath |
770 (d. h. AssemblyDirectory | UseDllDirectoryForDependencies | ApplicationDirectory ) |
CA5393 |
exclude_aspnet_core_mvc_controllerbase
Beschreibung | Zulässige Werte | Standardwert | Konfigurierbare Regeln |
---|---|---|---|
Ausschließen von ASP.NET Core MVC ControllerBase bei Berücksichtigung von CSRF | true oder false |
true |
CA5391 |
dispose_analysis_kind
Beschreibung | Zulässige Werte | Standardwert | Konfigurierbare Regeln |
---|---|---|---|
Gibt an, welche Pfade für Dispose-Verstöße analysiert werden sollen. | - AllPaths : Nachverfolgen und Melden fehlender Dispose-Verstöße in allen Pfaden (Pfade ohne und mit Ausnahmen). Kennzeichnen Sie darüber hinaus auch die Verwendung von nicht empfohlenen Dispose-Mustern, die zu potenziellen Dispose-Verlusten führen können.- AllPathsOnlyNotDisposed : Nachverfolgen und Melden fehlender Dispose-Verstöße in allen Pfaden (Pfade ohne und mit Ausnahmen). Kennzeichnen Sie nicht die Verwendung von nicht empfohlenen Dispose-Mustern, die zu potenziellen Dispose-Verlusten führen können.- NonExceptionPaths : Nachverfolgen und Melden fehlender Dispose-Verstöße nur für Programmpfade ohne Ausnahmen. Kennzeichnen Sie darüber hinaus auch die Verwendung von nicht empfohlenen Dispose-Mustern, die zu potenziellen Dispose-Verlusten führen können.- NonExceptionPathsOnlyNotDisposed : Nachverfolgen und Melden fehlender Dispose-Verstöße nur für Programmpfade ohne Ausnahmen. Kennzeichnen Sie nicht die Verwendung von nicht empfohlenen Dispose-Mustern, die zu potenziellen Dispose-Verlusten führen können. |
NonExceptionPaths |
CA2000 |
dispose_ownership_transfer_at_constructor
Beschreibung | Zulässige Werte | Standardwert | Konfigurierbare Regeln |
---|---|---|---|
Konfigurieren der Dispose-Besitzübertragung für Argumente, die an den Konstruktoraufruf übergeben werden | true oder false |
false |
CA2000 |
dispose_ownership_transfer_at_method_call
Beschreibung | Zulässige Werte | Standardwert | Konfigurierbare Regeln |
---|---|---|---|
Konfigurieren der Dispose-Besitzübertragung für verwerfbare Objekte, die als Argumente an Methodenaufrufe übergeben werden | true oder false |
false |
CA2000 |
enum_values_prefix_trigger
Beschreibung | Zulässige Werte | Standardwert | Konfigurierbare Regeln |
---|---|---|---|
Gibt den Schwellenwert zum Auslösen der Benennungsregel für Enumerationswerte an. | - AnyEnumValue : Die Regel wird ausgelöst, wenn irgendeiner der Enumerationswerte mit dem Enumerationstypnamen beginnt.- AllEnumValues : Die Regel wird ausgelöst, wenn alle Enumerationswerte mit dem Enumerationstypnamen beginnen.- Heuristic : Die Regel wird mit der FxCop-Standardheuristik ausgelöst (d. h. wenn mindestens 75 % der Enumerationswerte mit dem Enumerationstypnamen beginnen). |
Heuristic |
CA1712 |
exclude_indirect_base_types
Beschreibung | Zulässige Werte | Standardwert | Konfigurierbare Regeln |
---|---|---|---|
Ausschließen indirekter Basistypen | true oder false |
true |
CA1710 |
additional_required_suffixes
Beschreibung | Zulässige Werte | Standardwert | Konfigurierbare Regeln |
---|---|---|---|
Gibt weitere erforderliche Suffixe an. | Liste der Typnamen (getrennt durch |) mit dem erforderlichen Suffix (getrennt durch -> ). Zulässige Formate für Typnamen: - Nur Typname (schließt alle Typen mit dem Namen ein, unabhängig vom enthaltenden Typ oder Namespace) - Vollqualifizierte Namen im Dokumentations-ID-Format des Symbols mit einem optionalen T: -Präfix. |
Keine | CA1710 |
additional_required_generic_interfaces
Beschreibung | Zulässige Werte | Standardwert | Konfigurierbare Regeln |
---|---|---|---|
Gibt weitere erforderliche generische Schnittstellen an. | Liste der Schnittstellennamen (getrennt durch |) mit der erforderlichen generischen vollqualifizierten Schnittstelle (getrennt durch -> ). Zulässige Schnittstellenformate:- Nur Schnittstellenname (schließt alle Schnittstellen mit dem Namen ein, unabhängig vom enthaltenden Typ oder Namespace). - Vollqualifizierte Namen im Dokumentations-ID-Format des Symbols mit einem optionalen T: -Präfix. |
Keine | CA1010 |
Beispiele:
Optionswert | Zusammenfassung |
---|---|
dotnet_code_quality.CA1010.additional_required_generic_interfaces = ISomething->System.Collections.Generic.IEnumerable`1 |
Alle Typen, die ISomething implementieren, müssen unabhängig von Ihrem Namespace auch System.Collections.Generic.IEnumerable\`1 implementieren. |
dotnet_code_quality.CA1010.additional_required_generic_interfaces = T:System.Collections.IDictionary->T:System.Collections.Generic.IDictionary`2 |
Alle Typen, die System.Collections.IDictionary implementieren, müssen auch System.Collections.Generic.IDictionary`2 implementieren. |
additional_inheritance_excluded_symbol_names
Beschreibung | Zulässige Werte | Standardwert | Konfigurierbare Regeln |
---|---|---|---|
Gibt Typen oder Namespaces an, die von der Vererbungshierarchiestruktur ausgeschlossen werden sollen. | Zulässige Formate für Typnamen: - Typ- oder Namespacename (schließt alle Typen mit dem Namen ein unabhängig vom enthaltenden Typ oder Namespace und alle Typen, deren Namespace den Namen enthält). - Typ- oder Namespacename, der mit einem Platzhalterzeichen endet (enthält alle Typen, deren Name mit dem angegebenen Namen beginnt, unabhängig vom enthaltenden Typ oder Namespace sowie alle Typen, deren Namespace den Namen enthält). - Vollqualifizierte Namen im Dokumentations-ID-Format des Symbols mit dem optionalen Präfix T: für Typen bzw. dem Präfix N: für Namespaces- Vollqualifizierter Typ- oder Namespacename mit einem optionalen T: -Präfix für Typ oder N: -Präfix für Namespace und Endet mit dem Wildcardsymbol (enthält alle Typen, deren vollqualifizierter Name mit dem angegebenen Typnamen beginnt, oder alle Typen, deren vollqualifizierter Name mit dem angegebenen Namespacenamen beginnt). |
N:System.* (Dieser Wert wird immer automatisch zum angegebenen Wert hinzugefügt.) |
CA1501 |
analyzed_symbol_kinds
Beschreibung | Zulässige Werte | Standardwert | Konfigurierbare Regeln |
---|---|---|---|
Gibt die zu analysierenden Symboltypen an. | Mindestens ein Feld von SymbolKind als durch Trennzeichen getrennte Liste. | Namespace, NamedType, Method, Property, Event, Parameter |
CA1716 |
use_naming_heuristic
Beschreibung | Zulässige Werte | Standardwert | Konfigurierbare Regeln |
---|---|---|---|
Konfigurieren Sie, ob Parameter- oder Eigenschaftsnamen, die Text , Message oder Caption enthalten, diese Regel auslösen. |
true oder false |
false |
CA1303 |
additional_use_results_methods
Beschreibung | Zulässige Werte | Standardwert | Konfigurierbare Regeln |
---|---|---|---|
Gibt zusätzliche benutzerdefinierte APIs an, deren Ergebnisse verwendet werden müssen. | Namen zusätzlicher Methoden (getrennt durch |). Zulässige Formate für Methodennamen: - Nur Methodenname (schließt alle Methoden mit dem Namen ein, unabhängig vom enthaltenden Typ oder Namespace). - Vollqualifizierte Namen im Dokumentations-ID-Format des Symbols mit einem optionalen M: -Präfix. |
Keine | CA1806 |
allowed_suffixes
Beschreibung | Zulässige Werte | Standardwert | Konfigurierbare Regeln |
---|---|---|---|
Gibt zulässige Suffixe an. | Liste (getrennt durch |) zulässiger Suffixe. | Keine | CA1711 |
enable_platform_analyzer_on_pre_net5_target
Beschreibung | Zulässige Werte | Standardwert | Konfigurierbare Regeln |
---|---|---|---|
Gibt an, ob die Analyse für TFMs vor .NET 5 aktiviert werden soll. | true oder false |
false |
CA1416 |
exclude_structs
Beschreibung | Zulässige Werte | Standardwert | Konfigurierbare Regeln |
---|---|---|---|
Gibt an, ob Strukturen aus der Analyse ausgeschlossen werden sollen. | true oder false |
false |
CA1051 |
additional_enum_none_names
Beschreibung | Zulässige Werte | Standardwert | Konfigurierbare Regeln |
---|---|---|---|
Gibt zusätzliche zulässige Namen für ein Nullwert-Enumerationsfeld an. | Liste zusätzlicher Namen (durch | getrennt). | Keine | CA1008 |
enumeration_methods
Beschreibung | Zulässige Werte | Standardwert | Konfigurierbare Regeln |
---|---|---|---|
Gibt zusätzliche benutzerdefinierte Methoden an, die IEnumerable aufzählen. | Vollqualifizierte Namen zusätzlicher Methoden (getrennt durch |). | Keine | CA1851 |
linq_chain_methods
Beschreibung | Zulässige Werte | Standardwert | Konfigurierbare Regeln |
---|---|---|---|
Gibt zusätzliche angepasste LINQ-Kettenmethoden an (d. h. Methoden verwenden ein IEnumerable -Argument und geben eine neue IEnumerable -Instanz zurück) |
Vollqualifizierte Namen zusätzlicher Methoden (getrennt durch |). | Keine | CA1851 |
assume_method_enumerates_parameters
Beschreibung | Zulässige Werte | Standardwert | Konfigurierbare Regeln |
---|---|---|---|
Gibt an, ob davon ausgegangen werden soll, dass benutzerdefinierte Methoden ihre IEnumerable -Parameter aufzählen. |
true oder false |
false |
CA1851 |