Teilen über


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 weist ein anderes Präfix (dotnet_diagnostic) als die hier beschriebenen Optionen (dotnet_code_quality) auf. 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

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