Sdílet prostřednictvím


Možnosti konfigurace pravidel kvality kódu

Pravidla kvality kódu mají kromě konfigurace jejich závažnosti další možnosti nastavení. Každý analyzátor kvality kódu je například možné nakonfigurovat tak, aby platil pouze pro konkrétní části základu kódu. Tyto možnosti zadáte přidáním párů klíč-hodnota do stejného EditorConfig souboru, do kterého zadáte závažnosti pravidla a obecné předvolby editoru.

Note

Tento článek nepodrobně popisuje, jak nakonfigurovat závažnost pravidla. Možnost .editorconfig nastavit závažnost pravidla má jinou předponu (dotnet_diagnostic) k možnostem popsaným zde (dotnet_code_quality). Kromě toho se zde popsané možnosti týkají pouze pravidel kvality kódu, zatímco možnost závažnosti platí i pro pravidla stylu kódu. Jako stručný přehled můžete nakonfigurovat závažnost pravidla pomocí následující syntaxe možností:

dotnet_diagnostic.<rule ID>.severity = <severity value>

Podrobné informace o konfiguraci závažnosti pravidla najdete v tématu Úroveň závažnosti.

Obory možností

Každou možnost upřesnění je možné nakonfigurovat pro všechna pravidla, pro kategorii pravidel (například zabezpečení nebo návrh) nebo pro konkrétní pravidlo.

Všechna pravidla

Syntaxe konfigurace možnosti pro všechna pravidla je následující:

Syntax Example
dotnet_code_quality.<OptionName> = <OptionValue> dotnet_code_quality.api_surface = public

Hodnoty pro <OptionName> jsou uvedeny v části Možnosti.

Kategorie pravidel

Syntaxe pro konfiguraci možnosti pro kategorii pravidel je následující:

Syntax Example
dotnet_code_quality.<RuleCategory>.<OptionName> = OptionValue dotnet_code_quality.Naming.api_surface = public

Následující tabulka uvádí dostupné hodnoty pro <RuleCategory>.

Design
Documentation
Globalization
Interoperability

Maintainability
Naming
Performance
SingleFile

Reliability
Security
Usage

Konkrétní pravidlo

Syntaxe pro konfiguraci možnosti pro konkrétní pravidlo je následující:

Syntax Example
dotnet_code_quality.<RuleId>.<OptionName> = <OptionValue> dotnet_code_quality.CA1040.api_surface = public

Možnosti

Tato část obsahuje seznam dostupných možností konfigurace pro analyzátory kódu. Další informace naleznete v tématu Konfigurace analyzátoru.

api_surface

Description Povolené hodnoty Výchozí hodnota Konfigurovatelná pravidla
Kterou část rozhraní API je třeba analyzovat public (platí pro public API a protected API)
internal nebo friend (platí pro internal a private protected rozhraní API)
private (platí pro private rozhraní API)
all (platí pro všechna rozhraní API)

Oddělení více hodnot čárkou (,)
public CA1000CA1002CA1003CA1005CA1008CA1010CA1012CA1021CA1024CA1027CA1028CA1030CA1036CA1040CA1041CA1043CA1044CA1045CA1046CA1047CA1051CA1052CA1054CA1055CA1056CA1058CA1062CA1063CA1068CA1070CA1700CA1707CA1708CA1710CA1711CA1714CA1715CA1716CA1717CA1720CA1721CA1725CA1801CA1802CA1815CA1819CA1822CA1859CA2208CA2217CA2225CA2226CA2231CA2234

exclude_async_void_methods

Description Povolené hodnoty Výchozí hodnota Konfigurovatelná pravidla
Jestli se mají ignorovat asynchronní metody, které nevrací hodnotu true
false
false CA2007

Note

Tato možnost byla pojmenována skip_async_void_methods v dřívější verzi.

exclude_single_letter_type_parameters

Description Povolené hodnoty Výchozí hodnota Konfigurovatelná pravidla
Zda mají být z pravidla vyloučeny parametrické typy s jedním znakem, například v S true
false
false CA1715

Note

Tato možnost byla pojmenována allow_single_letter_type_parameters v dřívější verzi.

output_kind

Description Povolené hodnoty Výchozí hodnota Konfigurovatelná pravidla
Určuje, že kód v projektu, který generuje tento typ sestavení, by se měl analyzovat. Jedno nebo více polí výčtu OutputKind

Oddělení více hodnot čárkou (,)
Všechny druhy výstupu CA1515, CA1516, CA2007

required_modifiers

Description Povolené hodnoty Výchozí hodnota Konfigurovatelná pravidla
Určuje požadované modifikátory pro rozhraní API, která by se měla analyzovat. Jedna nebo více hodnot z níže uvedené tabulky povolených modifikátorů

Oddělení více hodnot čárkou (,)
Závisí na každém pravidlu. CA1802
Povolený modifikátor Summary
none Žádný požadavek modifikátoru
static nebo Shared Musí být deklarován jako static (Shared v jazyce Visual Basic)
const Musí být deklarována jako const
readonly Musí být deklarována jako readonly
abstract Musí být deklarována jako abstract
virtual Musí být deklarována jako virtual
override Musí být deklarována jako override
sealed Musí být deklarována jako sealed
extern Musí být deklarována jako extern
async Musí být deklarována jako async

exclude_extension_method_this_parameter

Description Povolené hodnoty Výchozí hodnota Konfigurovatelná pravidla
Zda přeskočit analýzu this parametru rozšiřujících metod true
false
false CA1062

null_check_validation_methods

Description Povolené hodnoty Výchozí hodnota Konfigurovatelná pravidla
Názvy metod kontroly proti null, které zajišťují, že argumenty předané metodě nejsou null. Povolené formáty názvů metod (oddělené |):
- Pouze název metody (zahrnuje všechny metody s názvem bez ohledu na typ nebo obor názvů).
- Plně kvalifikované názvy ve formátu ID dokumentace symbolu s volitelnou předponou M:
None CA1062

additional_string_formatting_methods

Description Povolené hodnoty Výchozí hodnota Konfigurovatelná pravidla
Názvy dalších metod formátování řetězců Povolené formáty názvů metod (oddělené |):
- Pouze název metody (zahrnuje všechny metody s názvem bez ohledu na typ nebo obor názvů).
- Plně kvalifikované názvy ve formátu ID dokumentace symbolu s volitelnou předponou M:
None CA2241

excluded_type_names_with_derived_types

Description Povolené hodnoty Výchozí hodnota Konfigurovatelná pravidla
Názvy typů, jako je typ a všechny jeho odvozené typy, jsou vyloučeny pro analýzu. Povolené formáty názvů symbolů (oddělené |):
- Pouze název typu (zahrnuje všechny typy s názvem bez ohledu na typ nebo obor názvů)
- Plně kvalifikované názvy ve formátu ID dokumentace symbolu s volitelnou předponou T:
None CA1001CA1054CA1055CA1056CA1062CA1068CA1303CA1304CA1305CA1508CA2000CA2100CA2301CA2302CA2311CA2312CA2321CA2322CA2327CA2328CA2329CA2330CA3001CA3002CA3003CA3004CA3005CA3006CA3007CA3008CA3009CA3010CA3011CA3012CA5361CA5376CA5377CA5378CA5380CA5381CA5382CA5383CA5384CA5387CA5388CA5389CA5390CA5399CA5400

excluded_symbol_names

Description Povolené hodnoty Výchozí hodnota Konfigurovatelná pravidla
Názvy symbolů, které jsou vyloučené pro analýzu Povolené formáty názvů symbolů (oddělené |):
- Pouze název symbolu (zahrnuje všechny symboly s názvem bez ohledu na typ nebo obor názvů).
- Plně kvalifikované názvy ve formátu ID dokumentace symbolu. Každý název symbolu vyžaduje předponu typu symbolu, například M: předponu pro metody, T: předponu pro typy a N: předponu pro obory názvů.
- .ctor pro konstruktory a .cctor statické konstruktory
None CA1001CA1054CA1055CA1056CA1062CA1068CA1303CA1304CA1305CA1508CA2000CA2100CA2301CA2302CA2311CA2312CA2321CA2322CA2327CA2328CA2329CA2330CA3001CA3002CA3003CA3004CA3005CA3006CA3007CA3008CA3009CA3010CA3011CA3012CA5361CA5376CA5377CA5378CA5380CA5381CA5382CA5383CA5384CA5387CA5388CA5389CA5390CA5399CA5400

disallowed_symbol_names

Description Povolené hodnoty Výchozí hodnota Konfigurovatelná pravidla
Názvy symbolů, které jsou zakázány v kontextu analýzy Povolené formáty názvů symbolů (oddělené |):
- Pouze název symbolu (zahrnuje všechny symboly s názvem bez ohledu na typ nebo obor názvů).
- Plně kvalifikované názvy ve formátu ID dokumentace symbolu. Každý název symbolu vyžaduje předponu typu symbolu, například M: předponu pro metody, T: předponu pro typy a N: předponu pro obory názvů.
- .ctor pro konstruktory a .cctor statické konstruktory
None CA1031

exclude_ordefault_methods

Description Povolené hodnoty Výchozí hodnota Konfigurovatelná pravidla
Vyloučí FirstOrDefault a LastOrDefault metody z analýzy. true nebo false false CA1826

ignore_internalsvisibleto

Description Povolené hodnoty Výchozí hodnota Konfigurovatelná pravidla
Zahrnuje sestavení označená InternalsVisibleToAttribute při analýze. true nebo false true CA1812CA1852

try_determine_additional_string_formatting_methods_automatically

Description Povolené hodnoty Výchozí hodnota Konfigurovatelná pravidla
Logická možnost povolení heuristické detekce dalších metod formátování řetězců
Metoda je považována za metodu formátování řetězce, pokud má string format parametr následovaný parametrem params object[] .
true nebo false false CA2241

unsafe_DllImportSearchPath_bits

Description Povolené hodnoty Výchozí hodnota Konfigurovatelná pravidla
Nastavte, která hodnota DllImportSearchPath je pro analýzu nebezpečná Celočíselné hodnoty System.Runtime.InteropServices.DllImportSearchPath 770(to znamená) AssemblyDirectory | UseDllDirectoryForDependencies | ApplicationDirectory CA5393

exclude_aspnet_core_mvc_controllerbase

Description Povolené hodnoty Výchozí hodnota Konfigurovatelná pravidla
Vyloučení ASP.NET Core MVC ControllerBase při zvažování CSRF true nebo false true CA5391

enum_values_prefix_trigger

Description Povolené hodnoty Výchozí hodnota Konfigurovatelná pravidla
Určuje prahovou hodnotu pro spuštění pravidla pojmenování výčtových hodnot. - AnyEnumValue – Pravidlo se aktivuje, pokud některá z hodnot výčtu začíná názvem typu výčtu.
- AllEnumValues – Pravidlo se aktivuje, pokud všechny hodnoty výčtu začínají názvem typu výčtu.
- Heuristic – Pravidlo se aktivuje pomocí výchozí heuristické metody FxCop (to znamená, že nejméně 75 % hodnot výčtu začíná názvem typu výčtu).
Heuristic CA1712

exclude_indirect_base_types

Description Povolené hodnoty Výchozí hodnota Konfigurovatelná pravidla
Vyloučit nepřímé základní typy true nebo false true CA1710

additional_required_suffixes

Description Povolené hodnoty Výchozí hodnota Konfigurovatelná pravidla
Určuje další požadované přípony. Seznam názvů typů (oddělených |) s požadovanou příponou (oddělených znakem ->). Povolené formáty názvů typů:
– Pouze název typu (zahrnuje všechny typy s názvem bez ohledu na typ nebo obor názvů).
- Plně kvalifikované názvy ve formátu ID dokumentace symbolu s volitelnou T: předponou.
None CA1710

additional_required_generic_interfaces

Description Povolené hodnoty Výchozí hodnota Konfigurovatelná pravidla
Určuje další požadovaná obecná rozhraní. Seznam názvů rozhraní (oddělených |) s požadovaným obecným plně kvalifikovaným rozhraním (odděleným ->). Povolené formáty rozhraní:
– Pouze název rozhraní (zahrnuje všechna rozhraní s názvem bez ohledu na typ nebo obor názvů).
- Plně kvalifikované názvy ve formátu ID dokumentace symbolu s volitelnou T: předponou.
None CA1010

Examples:

Hodnota možnosti Summary
dotnet_code_quality.CA1010.additional_required_generic_interfaces = ISomething->System.Collections.Generic.IEnumerable`1 Očekává se, že všechny typy implementující ISomething bez ohledu na jejich obor názvů budou také implementovat System.Collections.Generic.IEnumerable\`1.
dotnet_code_quality.CA1010.additional_required_generic_interfaces = T:System.Collections.IDictionary->T:System.Collections.Generic.IDictionary`2 Očekává se, že všechny typy implementující System.Collections.IDictionary budou také implementovat System.Collections.Generic.IDictionary`2.

additional_inheritance_excluded_symbol_names

Description Povolené hodnoty Výchozí hodnota Konfigurovatelná pravidla
Určuje typy nebo obory názvů, které se mají vyloučit ze stromu hierarchie dědičnosti. Povolené formáty názvů typů:
– Název typu nebo oboru názvů (zahrnuje všechny typy s názvem bez ohledu na typ nebo obor názvů a všechny typy, jejichž obor názvů obsahuje název).
– Typ nebo název oboru názvů končící zástupným znakem (zahrnuje všechny typy, jejichž název začíná daným názvem, bez ohledu na typ nebo obor názvů a všechny typy, jejichž obor názvů obsahuje název).
– Plně kvalifikované názvy ve formátu ID dokumentace symbolu s volitelnou T: předponou pro typy nebo N: předponou pro obory názvů.
– Plně kvalifikovaný typ nebo název oboru názvů s volitelnou T: předponou pro typ nebo N: předponu oboru názvů a končící zástupným znakem (zahrnuje všechny typy, jejichž plně kvalifikovaný název začíná daným názvem typu, nebo všechny typy, jejichž plně kvalifikovaný název začíná daným názvem oboru názvů).
N:System.* (Tato hodnota se vždy automaticky přidá k zadané hodnotě. CA1501

analyzed_symbol_kinds

Description Povolené hodnoty Výchozí hodnota Konfigurovatelná pravidla
Určuje typy symbolů, které se mají analyzovat. Jeden nebo více polí ve formě seznamu odděleného čárkami SymbolKind. Namespace, NamedType, Method, Property, Event, Parameter CA1716

use_naming_heuristic

Description Povolené hodnoty Výchozí hodnota Konfigurovatelná pravidla
Konfiguruje, zda parametry nebo názvy vlastností obsahující Text, Message nebo Caption aktivují toto pravidlo. true nebo false false CA1303

additional_use_results_methods

Description Povolené hodnoty Výchozí hodnota Konfigurovatelná pravidla
Určuje další vlastní rozhraní API, jejichž výsledky se musí použít. Názvy dalších metod (oddělené |). Povolené formáty názvů metod:
– pouze název metody (zahrnuje všechny metody s názvem bez ohledu na typ nebo obor názvů).
- Plně kvalifikované názvy ve formátu ID dokumentace symbolu s volitelnou M: předponou.
None CA1806

allowed_suffixes

Description Povolené hodnoty Výchozí hodnota Konfigurovatelná pravidla
Určuje povolené přípony. Seznam (oddělený |) povolených přípon None CA1711

enable_platform_analyzer_on_pre_net5_target

Description Povolené hodnoty Výchozí hodnota Konfigurovatelná pravidla
Určuje, jestli se má povolit analýza pro TFM před .NET 5. true nebo false false CA1416

exclude_structs

Description Povolené hodnoty Výchozí hodnota Konfigurovatelná pravidla
Určuje, jestli se mají vyloučit struktury z analýzy. true nebo false false CA1051

additional_enum_none_names

Description Povolené hodnoty Výchozí hodnota Konfigurovatelná pravidla
Určuje další povolené názvy pro pole výčtu nulové hodnoty. Seznam dalších názvů (oddělených |) None CA1008

enumeration_methods

Description Povolené hodnoty Výchozí hodnota Konfigurovatelná pravidla
Určuje další vlastní metody, které vytvoří výčet IEnumerable. Plně kvalifikované názvy dalších metod (oddělené |). None CA1851

linq_chain_methods

Description Povolené hodnoty Výchozí hodnota Konfigurovatelná pravidla
Určuje další přizpůsobené metody řetězu LINQ (to znamená, že metody přebírají IEnumerable argument a vracejí novou IEnumerable instanci). Plně kvalifikované názvy dalších metod (oddělené |). None CA1851

assume_method_enumerates_parameters

Description Povolené hodnoty Výchozí hodnota Konfigurovatelná pravidla
Určuje, jestli se má předpokládat, že přizpůsobené metody vyčíslí jejich IEnumerable parametry. true nebo false false CA1851

Možnosti analýzy toku dat

Možnosti v této části konfiguruje pravidla analýzy toku dat. Možnosti jsou následující:

Další informace o analýze toku dat najdete v tématu Zápis analyzátorů založených na analýze toku dat.

dispose_analysis_kind

Description Povolené hodnoty Výchozí hodnota Konfigurovatelná pravidla
Určuje, které cesty se mají analyzovat z důvodu narušení odstranění. - AllPaths - Sledování a hlášení chybějících porušení dispose na všech cestách (cesty bez výjimky a výjimky). Kromě toho také označte příznakem použití nepodporovaných vzorů dispose, které můžou způsobit potenciální úniky informací.
- AllPathsOnlyNotDisposed - Sledování a hlášení chybějících porušení dispose na všech cestách (cesty bez výjimky a výjimky). Neoznačujte použití nepodporovaných vzorů dispose, které by mohly způsobit potenciální úniky informací.
- NonExceptionPaths - Sledovat a hlásit chybějící porušení dispose pouze na programových cestách, které nevedou k výjimkám. Kromě toho také označte příznakem použití nepodporovaných vzorů dispose, které můžou způsobit potenciální úniky informací.
- NonExceptionPathsOnlyNotDisposed - Sledovat a hlásit chybějící porušení dispose pouze na programových cestách, které nevedou k výjimkám. Neoznačujte použití nepodporovaných vzorů dispose, které by mohly způsobit potenciální úniky informací.
NonExceptionPaths CA2000

dispose_ownership_transfer_at_constructor

Description Povolené hodnoty Výchozí hodnota Konfigurovatelná pravidla
Konfigurace převodu vlastnictví dispose pro argumenty předané do vyvolání konstruktoru true nebo false false CA2000

dispose_ownership_transfer_at_method_call

Description Povolené hodnoty Výchozí hodnota Konfigurovatelná pravidla
Konfigurace převodu vlastnictví pro uvolnitelné objekty předané jako argumenty volání metod true nebo false false CA2000

interprocedural_analysis_kind

Description Povolené hodnoty Výchozí hodnota Konfigurovatelná pravidla
Určuje, jestli se má provést meziprocedurální analýza pro volání zdrojových metod None, NonContextSensitive, ContextSensitive specifické pro každé konfigurovatelné pravidlo CA1062, CA1303, CA1508, CA2000, CA2100, CA2213

max_interprocedural_method_call_chain

Description Povolené hodnoty Výchozí hodnota Konfigurovatelná pravidla
Určuje maximální délku řetězce volání metody pro analýzu meziprocedrální analýzy toku dat. Celé číslo bez znaménka 3 CA1062, CA1303, CA1508, CA2000, CA2100, CA2213

max_interprocedural_lambda_or_local_function_call_chain

Description Povolené hodnoty Výchozí hodnota Konfigurovatelná pravidla
Určuje maximální délku řetězce volání lambda nebo místní funkce pro meziprocedurální analýzu toku dat. Celé číslo bez znaménka 3 CA1062, CA1303, CA1508, CA2000, CA2100, CA2213

points_to_analysis_kind

Description Povolené hodnoty Výchozí hodnota Konfigurovatelná pravidla
Určuje, zda se má provést PointsToAnalysis. None, PartialWithoutTrackingFieldsAndProperties, Complete specifické pro každé pravidlo CA1062, CA1303, CA1508, CA2000, CA2100, CA2213

copy_analysis

Description Povolené hodnoty Výchozí hodnota Konfigurovatelná pravidla
Určuje, jestli se má analýza kopírování provádět (sleduje hodnoty a referenční kopie). true nebo false true pro většinu pravidel CA1062, CA1303, CA1508, CA2000, CA2100, CA2213

sufficient_IterationCount_for_weak_KDF_algorithm

Description Povolené hodnoty Výchozí hodnota Konfigurovatelná pravidla
Nakonfiguruje dostatečný počet iterací při použití algoritmu slabé funkce odvození klíče (KDF). Integer 100000 pro většinu pravidel CA1062, CA1303, CA1508, CA2000, CA2100, CA2213