Možnosti konfigurace pravidel kvality kódu
Kromě konfigurace závažnosti mají pravidla kvality kódu další možnosti konfigurace. 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.
Poznámka:
Tento článek podrobně popisuje, jak nakonfigurovat závažnost pravidla. Možnost .editorconfig pro nastavení závažnosti 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í:
Syntaxe | Příklad |
---|---|
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í:
Syntaxe | Příklad |
---|---|
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í:
Syntaxe | Příklad |
---|---|
dotnet_code_quality.<RuleId>.<OptionName> = <OptionValue> | dotnet_code_quality.CA1040.api_surface = public |
Možnosti
V této části jsou uvedeny některé z dostupných možností. Úplný seznam dostupných možností najdete v tématu Konfigurace analyzátoru.
- 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
Popis | Povolené hodnoty | Default value | Konfigurovatelná pravidla |
---|---|---|---|
Která část povrchu rozhraní API k analýze | public (platí pro public rozhraní API a protected rozhraní 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 |
CA1000 CA1002 CA1003 CA1005 CA1008 CA1010 CA1012 CA1021 CA1024 CA1027 CA1028 CA1030 CA1036 CA1036 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 CA1716 CA1717 CA1720 CA1721 CA1725 CA1801 CA1802 CA1815 CA1819 CA1822 CA1859 CA2208 CA2217 CA2225 CA2226 CA2231 CA2234 |
exclude_async_void_methods
Popis | Povolené hodnoty | Default value | Konfigurovatelná pravidla |
---|---|---|---|
Jestli se mají ignorovat asynchronní metody, které nevrací hodnotu | true false |
false |
CA2007 |
Poznámka:
Tato možnost byla pojmenována skip_async_void_methods
v dřívější verzi.
exclude_single_letter_type_parameters
Popis | Povolené hodnoty | Default value | Konfigurovatelná pravidla |
---|---|---|---|
Zda chcete vyloučit parametry typu s jedním znakem z pravidla, S například vCollection<S> |
true false |
false |
CA1715 |
Poznámka:
Tato možnost byla pojmenována allow_single_letter_type_parameters
v dřívější verzi.
output_kind
Popis | Povolené hodnoty | Default value | 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 | CA2007 |
required_modifiers
Popis | Povolené hodnoty | Default value | 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 | Shrnutí |
---|---|
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
Popis | Povolené hodnoty | Default value | Konfigurovatelná pravidla |
---|---|---|---|
Zda přeskočit analýzu this parametru rozšiřujících metod |
true false |
false |
CA1062 |
null_check_validation_methods
Popis | Povolené hodnoty | Default value | Konfigurovatelná pravidla |
---|---|---|---|
Názvy metod ověřování s hodnotou null, které ověř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 M: předponou |
Nic | CA1062 |
additional_string_formatting_methods
Popis | Povolené hodnoty | Default value | 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 M: předponou |
Nic | CA2241 |
excluded_type_names_with_derived_types
Popis | Povolené hodnoty | Default value | 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 T: předponou |
Nic | CA1001 CA1054 CA1055 CA1056 CA1062 CA1068 CA1303 CA1304 CA1305 CA1508 CA2000 CA2100 CA2301 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 CA5377 CA5378 CA5380 CA5381 CA5382 CA5383 CA5384 CA5387 CA5388 CA5389 CA5390 CA5399 CA5400 |
excluded_symbol_names
Popis | Povolené hodnoty | Default value | 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 |
Nic | CA1001 CA1054 CA1055 CA1056 CA1062 CA1068 CA1303 CA1304 CA1305 CA1508 CA2000 CA2100 CA2301 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 CA5377 CA5378 CA5380 CA5381 CA5382 CA5383 CA5384 CA5387 CA5388 CA5389 CA5390 CA5399 CA5400 |
disallowed_symbol_names
Popis | Povolené hodnoty | Default value | 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 |
Nic | CA1031 |
exclude_ordefault_methods
Popis | Povolené hodnoty | Default value | Konfigurovatelná pravidla |
---|---|---|---|
Vyloučí FirstOrDefault a LastOrDefault metody z analýzy. |
true nebo false |
false |
CA1826 |
ignore_internalsvisibleto
Popis | Povolené hodnoty | Default value | Konfigurovatelná pravidla |
---|---|---|---|
Zahrnuje sestavení označená InternalsVisibleToAttribute při analýze. | true nebo false |
true |
CA1812 CA1852 |
try_determine_additional_string_formatting_methods_automatically
Popis | Povolené hodnoty | Default value | 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
Popis | Povolené hodnoty | Default value | Konfigurovatelná pravidla |
---|---|---|---|
Konfigurace hodnoty, která 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
Popis | Povolené hodnoty | Default value | Konfigurovatelná pravidla |
---|---|---|---|
Vyloučení ASP.NET Core MVC ControllerBase při zvažování CSRF | true nebo false |
true |
CA5391 |
dispose_analysis_kind
Popis | Povolené hodnoty | Default value | 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 cesty programu bez výjimky. 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 cesty programu bez výjimky. Neoznačujte použití nepodporovaných vzorů dispose, které by mohly způsobit potenciální úniky informací. |
NonExceptionPaths |
CA2000 |
dispose_ownership_transfer_at_constructor
Popis | Povolené hodnoty | Default value | 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
Popis | Povolené hodnoty | Default value | Konfigurovatelná pravidla |
---|---|---|---|
Konfigurace převodu vlastnictví pro uvolnitelné objekty předané jako argumenty volání metod | true nebo false |
false |
CA2000 |
enum_values_prefix_trigger
Popis | Povolené hodnoty | Default value | Konfigurovatelná pravidla |
---|---|---|---|
Určuje prahovou hodnotu pro aktivaci pravidla pojmenování hodnot výčtu. | - 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é 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
Popis | Povolené hodnoty | Default value | Konfigurovatelná pravidla |
---|---|---|---|
Vyloučení nepřímých základních typů | true nebo false |
true |
CA1710 |
additional_required_suffixes
Popis | Povolené hodnoty | Default value | 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. |
Nic | CA1710 |
additional_required_generic_interfaces
Popis | Povolené hodnoty | Default value | 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. |
Nic | CA1010 |
Příklady:
Hodnota možnosti | Shrnutí |
---|---|
dotnet_code_quality.CA1010.additional_required_generic_interfaces = ISomething->System.Collections.Generic.IEnumerable`1 |
Očekává se také System.Collections.Generic.IEnumerable\`1 implementace ISomething všech typů bez ohledu na jeho obor názvů . |
dotnet_code_quality.CA1010.additional_required_generic_interfaces = T:System.Collections.IDictionary->T:System.Collections.Generic.IDictionary`2 |
Očekává se také implementace System.Collections.IDictionary System.Collections.Generic.IDictionary`2 všech typů . |
additional_inheritance_excluded_symbol_names
Popis | Povolené hodnoty | Default value | 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ředpony 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
Popis | Povolené hodnoty | Default value | Konfigurovatelná pravidla |
---|---|---|---|
Určuje typy symbolů, které se mají analyzovat. | Jedno nebo více polí oddělených SymbolKind čárkami. | Namespace, NamedType, Method, Property, Event, Parameter |
CA1716 |
use_naming_heuristic
Popis | Povolené hodnoty | Default value | Konfigurovatelná pravidla |
---|---|---|---|
Konfiguruje, zda parametry nebo názvy vlastností obsahují Text , Message nebo Caption aktivovat toto pravidlo. |
true nebo false |
false |
CA1303 |
additional_use_results_methods
Popis | Povolené hodnoty | Default value | 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. |
Nic | CA1806 |
allowed_suffixes
Popis | Povolené hodnoty | Default value | Konfigurovatelná pravidla |
---|---|---|---|
Určuje povolené přípony. | Seznam (oddělený |) povolených přípon | Nic | CA1711 |
enable_platform_analyzer_on_pre_net5_target
Popis | Povolené hodnoty | Default value | Konfigurovatelná pravidla |
---|---|---|---|
Určuje, jestli se má povolit analýza pro TFM před .NET 5. | true nebo false |
false |
CA1416 |
exclude_structs
Popis | Povolené hodnoty | Default value | Konfigurovatelná pravidla |
---|---|---|---|
Určuje, jestli se mají vyloučit struktury z analýzy. | true nebo false |
false |
CA1051 |
additional_enum_none_names
Popis | Povolené hodnoty | Default value | Konfigurovatelná pravidla |
---|---|---|---|
Určuje další povolené názvy pro pole výčtu nulové hodnoty. | Seznam dalších názvů (oddělených |) | Nic | CA1008 |
enumeration_methods
Popis | Povolené hodnoty | Default value | Konfigurovatelná pravidla |
---|---|---|---|
Určuje další vlastní metody, které vytvoří výčet IEnumerable. | Plně kvalifikované názvy dalších metod (oddělené |). | Nic | CA1851 |
linq_chain_methods
Popis | Povolené hodnoty | Default value | 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é |). | Nic | CA1851 |
assume_method_enumerates_parameters
Popis | Povolené hodnoty | Default value | 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 |
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro