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
) als die 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 |
CA1000 CA1002 CA1003 CA1005 CA1008 CA1010 CA1012 CA1021 CA1024 CA1027 CA1028 CA1030 CA1036 CA1040 CA1041 CA1043 CA1044 CA1045 CA1046 CA1047 CA1051 CA1052 CA1054 CA1055 CA1056 CA1058 CA1062 CA1063 CA1068 CA1070 CA1700 CA1707 CA1708 CA1710 CA1711 CA1714 CA1715 CA1716 CA1717 CA1720 CA1721 CA1725 CA1801 CA1802 CA1815 CA1819 CA1822 CA1859 CA2208 CA2217 CA2225 CA2226 CA2231 CA2234 |
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 | CA1001 CA1054 CA1055 CA1056 CA1062 CA1068 CA1303 CA1304 CA1305 CA1508 CA2000 CA2100 CA2301 CA2302 CA2311 CA2312 CA2321 CA2322 CA2327 CA2328 CA2329 CA2330 CA3001 CA3002 CA3003 CA3004 CA3005 CA3006 CA3007 CA3008 CA3009 CA3010 CA3011 CA3012 CA5361 CA5376 CA5377 CA5378 CA5380 CA5381 CA5382 CA5383 CA5384 CA5387 CA5388 CA5389 CA5390 CA5399 CA5400 |
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 | CA1001 CA1054 CA1055 CA1056 CA1062 CA1068 CA1303 CA1304 CA1305 CA1508 CA2000 CA2100 CA2301 CA2302 CA2311 CA2312 CA2321 CA2322 CA2327 CA2328 CA2329 CA2330 CA3001 CA3002 CA3003 CA3004 CA3005 CA3006 CA3007 CA3008 CA3009 CA3010 CA3011 CA3012 CA5361 CA5376 CA5377 CA5378 CA5380 CA5381 CA5382 CA5383 CA5384 CA5387 CA5388 CA5389 CA5390 CA5399 CA5400 |
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 |
CA1812 CA1852 |
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). - Vollständig qualifizierte 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 |