Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Reguły jakości kodu mają dodatkowe opcje konfiguracji, oprócz konfigurowania ich ważności. Na przykład każdy analizator jakości kodu można skonfigurować tak, aby dotyczył tylko określonych części bazy kodu. Te opcje można określić, dodając pary klucz-wartość do tego samego EditorConfig pliku, w którym określasz ważność reguły i preferencje edytora ogólnego.
Note
W tym artykule nie opisano szczegółowo sposobu konfigurowania ważności reguły. Opcja .editorconfig ustawiania ważności reguły ma inny prefiks (dotnet_diagnostic) do opcji opisanych tutaj (dotnet_code_quality). Ponadto opisane tutaj opcje odnoszą się tylko do reguł jakości kodu, natomiast opcja ważności ma zastosowanie również do reguł stylu kodu. W ramach krótkiej dokumentacji można skonfigurować ważność reguły przy użyciu następującej składni opcji:
dotnet_diagnostic.<rule ID>.severity = <severity value>
Aby uzyskać szczegółowe informacje na temat konfigurowania ważności reguły, zobacz Poziom ważności.
Option scopes
Każdą opcję u rafinacji można skonfigurować dla wszystkich reguł, dla kategorii reguł (na przykład zabezpieczeń lub projektu) lub dla określonej reguły.
All rules
Składnia konfigurowania opcji dla wszystkich reguł jest następująca:
| Syntax | Example |
|---|---|
| dotnet_code_quality.<OptionName> = <OptionValue> | dotnet_code_quality.api_surface = public |
Wartości dla <OptionName> są wymienione w obszarze Opcje.
Kategoria reguł
Składnia konfigurowania opcji dla kategorii reguł jest następująca:
| Syntax | Example |
|---|---|
| dotnet_code_quality.<RuleCategory>.<OptionName> = OptionValue | dotnet_code_quality.Naming.api_surface = public |
W poniższej tabeli wymieniono dostępne wartości dla elementu <RuleCategory>.
Design
Documentation
Globalization
Interoperability
Maintainability
Naming
Performance
SingleFile
Reliability
Security
Usage
Specific rule
Składnia konfigurowania opcji dla określonej reguły jest następująca:
| Syntax | Example |
|---|---|
| dotnet_code_quality.<RuleId>.<OptionName> = <OptionValue> | dotnet_code_quality.CA1040.api_surface = public |
Opcje
W tej sekcji wymieniono dostępne opcje konfiguracji analizatorów kodu. Aby uzyskać więcej informacji, zobacz konfigurację analizatora.
- additional_enum_none_names
- additional_inheritance_excluded_symbol_names
- additional_required_generic_interfaces
- additional_required_suffixes
- additional_use_results_methods
- additional_string_formatting_methods
- allowed_suffixes
- analyzed_symbol_kinds
- api_surface
- assume_method_enumerates_parameters
- opcje analizy przepływu danych
- disallowed_symbol_names
- enable_platform_analyzer_on_pre_net5_target
- enum_values_prefix_trigger
- enumeration_methods
- exclude_aspnet_core_mvc_controllerbase
- exclude_indirect_base_types
- exclude_structs
- exclude_async_void_methods
- exclude_extension_method_this_parameter
- exclude_ordefault_methods
- exclude_single_letter_type_parameters
- excluded_symbol_names
- excluded_type_names_with_derived_types
- ignore_internalsvisibleto
- linq_chain_methods
- null_check_validation_methods
- output_kind
- points_to_analysis_kind
- required_modifiers
- try_determine_additional_string_formatting_methods_automatically
- unsafe_DllImportSearchPath_bits
- use_naming_heuristic
api_surface
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Która część powierzchni interfejsu API do przeanalizowania |
public (dotyczy interfejsów public API i protected )internal lub friend (dotyczy internal interfejsów API i private protected )private (dotyczy private Interfejsy API)all (dotyczy wszystkich interfejsów API)Oddzielanie wielu wartości przecinkami (,) |
public |
CA1000CA1002CA1003CA1005CA1008CA1010CA1012CA1021CA1024CA1027CA1028CA1030CA1036CA1040CA1041CA1043CA1044CA1045CA1046CA1047CA1051CA1052CA1054CA1055CA1056CA1058CA1062CA1063CA1068CA1070CA1700CA1707CA1708CA1710CA1711CA1714CA1715CA1716CA1717CA1720CA1721CA1725CA1801CA1802CA1815CA1819CA1822CA1859CA2208CA2217CA2225CA2226CA2231CA2234 |
exclude_async_void_methods
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Czy ignorować metody asynchroniczne, które nie zwracają wartości | truefalse |
false |
CA2007 |
Note
Ta opcja została nazwana skip_async_void_methods we wcześniejszej wersji.
exclude_single_letter_type_parameters
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
Czy wykluczyć parametry typu jednoznakowego z reguły, na przykład w SCollection<S> |
truefalse |
false |
CA1715 |
Note
Ta opcja została nazwana allow_single_letter_type_parameters we wcześniejszej wersji.
output_kind
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Określa, że kod w projekcie, który generuje tego typu zestaw, powinien być analizowany | Co najmniej jedno pole OutputKind wyliczenia Oddzielanie wielu wartości przecinkami (,) |
Wszystkie rodzaje danych wyjściowych | CA1515, CA1516, CA2007 |
required_modifiers
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Określa wymagane modyfikatory dla interfejsów API, które powinny być analizowane | Co najmniej jedna wartość z poniższej tabeli dozwolonych modyfikatorów Oddzielanie wielu wartości przecinkami (,) |
Zależy od każdej reguły | CA1802 |
| Allowed Modifier | Summary |
|---|---|
none |
Brak wymagania modyfikatora |
static lub Shared |
Musi być zadeklarowany jako static (Shared w Visual Basic) |
const |
Należy zadeklarować jako const |
readonly |
Należy zadeklarować jako readonly |
abstract |
Należy zadeklarować jako abstract |
virtual |
Należy zadeklarować jako virtual |
override |
Należy zadeklarować jako override |
sealed |
Należy zadeklarować jako sealed |
extern |
Należy zadeklarować jako extern |
async |
Należy zadeklarować jako async |
exclude_extension_method_this_parameter
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
Czy pominąć analizę this parametru metod rozszerzeń |
truefalse |
false |
CA1062 |
null_check_validation_methods
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Nazwy metod weryfikacji sprawdzania wartości null, które weryfikują, czy argumenty przekazywane do metody są inne niż null | Dozwolone formaty nazw metod (oddzielone |): - Tylko nazwa metody (zawiera wszystkie metody o nazwie, niezależnie od typu zawierającego lub przestrzeni nazw) - W pełni kwalifikowane nazwy w formacie identyfikatora dokumentacji symbolu z opcjonalnym M: prefiksem |
None | CA1062 |
additional_string_formatting_methods
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Nazwy dodatkowych metod formatowania ciągów | Dozwolone formaty nazw metod (oddzielone |): - Tylko nazwa metody (zawiera wszystkie metody o nazwie, niezależnie od typu zawierającego lub przestrzeni nazw) - W pełni kwalifikowane nazwy w formacie identyfikatora dokumentacji symbolu z opcjonalnym M: prefiksem |
None | CA2241 |
excluded_type_names_with_derived_types
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Nazwy typów, tak aby typ i wszystkie jego typy pochodne zostały wykluczone do analizy | Dozwolone formaty nazw symboli (oddzielone |): - Nazwa typu (zawiera tylko wszystkie typy o nazwie, niezależnie od typu zawierającego lub przestrzeni nazw) - W pełni kwalifikowane nazwy w formacie identyfikatora dokumentacji symbolu z opcjonalnym T: prefiksem |
None | CA1001CA1054CA1055CA1056CA1062CA1068CA1303CA1304CA1305CA1508CA2000CA2100CA2301CA2302CA2311CA2312CA2321CA2322CA2327CA2328CA2329CA2330CA3001CA3002CA3003CA3004CA3005CA3006CA3007CA3008CA3009CA3010CA3011CA3012CA5361CA5376CA5377CA5378CA5380CA5381CA5382CA5383CA5384CA5387CA5388CA5389CA5390CA5399CA5400 |
excluded_symbol_names
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Nazwy symboli, które są wykluczone do analizy | Dozwolone formaty nazw symboli (oddzielone |): - Tylko nazwa symboli (zawiera wszystkie symbole o nazwie, niezależnie od typu zawierającego lub przestrzeni nazw) - W pełni kwalifikowane nazwy w formacie identyfikatora dokumentacji symbolu. Każda nazwa symboli wymaga prefiksu typu symboli, takiego jak M: prefiks dla metod, T: prefiks dla typów i N: prefiks dla przestrzeni nazw.- .ctor dla konstruktorów i .cctor konstruktorów statycznych |
None | CA1001CA1054CA1055CA1056CA1062CA1068CA1303CA1304CA1305CA1508CA2000CA2100CA2301CA2302CA2311CA2312CA2321CA2322CA2327CA2328CA2329CA2330CA3001CA3002CA3003CA3004CA3005CA3006CA3007CA3008CA3009CA3010CA3011CA3012CA5361CA5376CA5377CA5378CA5380CA5381CA5382CA5383CA5384CA5387CA5388CA5389CA5390CA5399CA5400 |
disallowed_symbol_names
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Nazwy symboli, które są niedozwolone w kontekście analizy | Dozwolone formaty nazw symboli (oddzielone |): - Tylko nazwa symboli (zawiera wszystkie symbole o nazwie, niezależnie od typu zawierającego lub przestrzeni nazw) - W pełni kwalifikowane nazwy w formacie identyfikatora dokumentacji symbolu. Każda nazwa symboli wymaga prefiksu typu symboli, takiego jak M: prefiks dla metod, T: prefiks dla typów i N: prefiks dla przestrzeni nazw.- .ctor dla konstruktorów i .cctor konstruktorów statycznych |
None | CA1031 |
exclude_ordefault_methods
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
FirstOrDefault Wyklucza metody i LastOrDefault z analizy. |
true lub false |
false |
CA1826 |
ignore_internalsvisibleto
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Zawiera zestawy oznaczone InternalsVisibleToAttribute w analizie. |
true lub false |
true |
CA1812CA1852 |
try_determine_additional_string_formatting_methods_automatically
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Opcja logiczna umożliwiająca wykrywanie heurystyczne dodatkowych metod formatowania ciągów. Metoda jest uznawana za metodę formatowania ciągów, jeśli ma string format parametr, po którym następuje params object[] parametr. |
true lub false |
false |
CA2241 |
unsafe_DllImportSearchPath_bits
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
Konfigurowanie wartości niebezpiecznej DllImportSearchPath dla analizy |
Wartości całkowite System.Runtime.InteropServices.DllImportSearchPath |
770 (czyli AssemblyDirectory | UseDllDirectoryForDependencies | ApplicationDirectory) |
CA5393 |
exclude_aspnet_core_mvc_controllerbase
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Wykluczanie ASP.NET Core MVC ControllerBase podczas rozważania csrf |
true lub false |
true |
CA5391 |
enum_values_prefix_trigger
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Określa próg wyzwalający regułę nazewnictwa wartości wyliczeniowych |
-
AnyEnumValue — Reguła jest wyzwalana, jeśli którakolwiek z wartości wyliczenia zaczyna się od nazwy typu wyliczenia.
- AllEnumValues — Reguła jest wyzwalana, jeśli wszystkie wartości wyliczenia zaczynają się od nazwy typu wyliczenia.
- Heuristic — Reguła jest wyzwalana przy użyciu domyślnej heurystyki FxCop (czyli wtedy, gdy co najmniej 75% wartości wyliczenia zaczyna się od nazwy typu wyliczenia). |
Heuristic |
CA1712 |
exclude_indirect_base_types
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Wykluczanie typów baz pośrednich |
true lub false |
true |
CA1710 |
additional_required_suffixes
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Określa dodatkowe wymagane sufiksy | Lista nazw typów (oddzielonych przez |) z ich wymaganym sufiksem (oddzielone przez ->). Dozwolone formaty nazw typów:— tylko nazwa typu (obejmuje wszystkie typy o nazwie, niezależnie od typu zawierającego lub przestrzeni nazw). - W pełni kwalifikowane nazwy w formacie identyfikatora dokumentacji symbolu z opcjonalnym T: prefiksem. |
None | CA1710 |
additional_required_generic_interfaces
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Określa dodatkowe wymagane interfejsy ogólne | Lista nazw interfejsów (oddzielonych przez |) ich wymaganym w pełni kwalifikowanym interfejsem ogólnym (oddzielonym przez ->). Dozwolone formaty interfejsu:— nazwa interfejsu (zawiera tylko wszystkie interfejsy o nazwie, niezależnie od typu zawierającego lub przestrzeni nazw). - W pełni kwalifikowane nazwy w formacie identyfikatora dokumentacji symbolu z opcjonalnym T: prefiksem. |
None | CA1010 |
Examples:
| Option Value | Summary |
|---|---|
dotnet_code_quality.CA1010.additional_required_generic_interfaces = ISomething->System.Collections.Generic.IEnumerable`1 |
Wszystkie typy implementowane ISomething niezależnie od jej przestrzeni nazw mają również zaimplementować System.Collections.Generic.IEnumerable\`1wartość . |
dotnet_code_quality.CA1010.additional_required_generic_interfaces = T:System.Collections.IDictionary->T:System.Collections.Generic.IDictionary`2 |
Oczekuje się również, że wszystkie typy implementują System.Collections.IDictionary funkcję System.Collections.Generic.IDictionary`2. |
additional_inheritance_excluded_symbol_names
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Określa typy lub przestrzenie nazw do wykluczenia z drzewa hierarchii dziedziczenia | Dozwolone formaty nazw typów: — nazwa typu lub przestrzeni nazw (zawiera wszystkie typy o nazwie, niezależnie od typu zawierającego lub przestrzeni nazw oraz wszystkich typów, których przestrzeń nazw zawiera nazwę). - Nazwa typu lub przestrzeni nazw kończąca się symbolem wieloznacznymi (zawiera wszystkie typy, których nazwa zaczyna się od podanej nazwy, niezależnie od typu zawierającego typ lub przestrzeń nazw, oraz wszystkich typów, których przestrzeń nazw zawiera nazwę). - W pełni kwalifikowane nazwy w formacie identyfikatora dokumentacji symbolu z opcjonalnym T: prefiksem dla typów lub N: prefiksu dla przestrzeni nazw.
- W pełni kwalifikowana nazwa typu lub przestrzeni nazw z opcjonalnym T: prefiksem dla typu lub N: prefiksu przestrzeni nazw i kończąca się symbolem wieloznacznymi (zawiera wszystkie typy, których w pełni kwalifikowana nazwa zaczyna się od podanej nazwy typu lub wszystkich typów, których w pełni kwalifikowana nazwa zaczyna się od danej nazwy przestrzeni nazw). |
N:System.* (Ta wartość jest zawsze automatycznie dodawana do podanej wartości) |
CA1501 |
analyzed_symbol_kinds
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Określa rodzaje symboli do przeanalizowania | Co najmniej jedno pole SymbolKind listy rozdzielone przecinkami. | Namespace, NamedType, Method, Property, Event, Parameter |
CA1716 |
use_naming_heuristic
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
Określa, czy parametry lub nazwy właściwości zawierają Text, Messagelub Caption wyzwalają tę regułę |
true lub false |
false |
CA1303 |
additional_use_results_methods
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Określa dodatkowe niestandardowe interfejsy API, których wyniki muszą być używane | Nazwy dodatkowych metod (oddzielone |). Dozwolone formaty nazw metod: — nazwa metody (zawiera tylko wszystkie metody o nazwie, niezależnie od typu zawierającego lub przestrzeni nazw). - W pełni kwalifikowane nazwy w formacie identyfikatora dokumentacji symbolu z opcjonalnym M: prefiksem. |
None | CA1806 |
allowed_suffixes
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Określa dozwolone sufiksy | Lista (oddzielona przez |) dozwolonych sufiksów. | None | CA1711 |
enable_platform_analyzer_on_pre_net5_target
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Określa, czy włączyć analizę dla serwera TFM przed platformą .NET 5 |
true lub false |
false |
CA1416 |
exclude_structs
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Określa, czy należy wykluczyć struktury z analizy |
true lub false |
false |
CA1051 |
additional_enum_none_names
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Określa dodatkowe dozwolone nazwy dla pola wyliczania zerowej wartości | Lista dodatkowych nazw (oddzielona |). | None | CA1008 |
enumeration_methods
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Określa dodatkowe metody niestandardowe, które wyliczają element IEnumerable | W pełni kwalifikowane nazwy dodatkowych metod (oddzielone przez |). | None | CA1851 |
linq_chain_methods
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
Określa dodatkowe dostosowane metody łańcucha LINQ (czyli metody przyjmują IEnumerable argument i zwracają nowe IEnumerable wystąpienie) |
W pełni kwalifikowane nazwy dodatkowych metod (oddzielone przez |). | None | CA1851 |
assume_method_enumerates_parameters
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
Określa, czy zakładać, że dostosowane metody wyliczają swoje IEnumerable parametry |
true lub false |
false |
CA1851 |
Opcje analizy przepływu danych
Opcje w tej sekcji umożliwiają konfigurowanie reguł analizy przepływu danych. Dostępne są następujące opcje:
- dispose_analysis_kind
- dispose_ownership_transfer_at_constructor
- dispose_ownership_transfer_at_method_call
- interprocedural_analysis_kind
- max_interprocedural_lambda_or_local_function_call_chain
- max_interprocedural_method_call_chain
- copy_analysis
- sufficient_IterationCount_for_weak_KDF_algorithm
Aby uzyskać więcej informacji na temat analizy przepływu danych, zobacz Pisanie analizatorów opartych na przepływach danych.
dispose_analysis_kind
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Określa ścieżki do analizy pod kątem naruszeń usuwania |
-
AllPaths — Śledzenie i zgłaszanie brakujących naruszeń usuwania we wszystkich ścieżkach (ścieżki wyjątków i wyjątków). Ponadto flaguje również użycie nielecanych wzorców usuwania, które mogą powodować potencjalne wycieki usuwania.
- AllPathsOnlyNotDisposed — Śledzenie i zgłaszanie brakujących naruszeń usuwania we wszystkich ścieżkach (ścieżki wyjątków i wyjątków). Nie flaguj stosowania niezalecanych wzorców usuwania, które mogą powodować potencjalne wycieki usuwania.
- NonExceptionPaths — Śledzenie i zgłaszanie brakujących naruszeń usuwania tylko w ścieżkach programów innych niż wyjątki. Ponadto flaguje również użycie nielecanych wzorców usuwania, które mogą powodować potencjalne wycieki usuwania.
- NonExceptionPathsOnlyNotDisposed — Śledzenie i zgłaszanie brakujących naruszeń usuwania tylko w ścieżkach programów innych niż wyjątki. Nie flaguj stosowania niezalecanych wzorców usuwania, które mogą powodować potencjalne wycieki usuwania. |
NonExceptionPaths |
CA2000 |
dispose_ownership_transfer_at_constructor
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Konfigurowanie przenoszenia własności usuwania dla argumentów przekazywanych do wywołania konstruktora |
true lub false |
false |
CA2000 |
dispose_ownership_transfer_at_method_call
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Konfigurowanie przenoszenia własności usuwania dla jednorazowych obiektów przekazywanych jako argumenty do wywołań metod |
true lub false |
false |
CA2000 |
interprocedural_analysis_kind
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Określa, czy przeprowadzić analizę międzyprocjową dla wywołań metod źródłowych |
None
NonContextSensitive, ContextSensitive |
specyficzne dla każdej konfigurowalnej reguły | CA1062, CA1303, CA1508, CA2000, CA2100, CA2213 |
max_interprocedural_method_call_chain
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Określa maksymalną długość łańcucha wywołań metody do międzoproceduralnej analizy przepływu danych. | Unsigned integer | 3 | CA1062, CA1303, CA1508, CA2000, CA2100, CA2213 |
max_interprocedural_lambda_or_local_function_call_chain
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Określa maksymalną długość łańcucha wywołań funkcji lambda lub lokalnej do analizy międzyprocedurowego przepływu danych. | Unsigned integer | 3 | CA1062, CA1303, CA1508, CA2000, CA2100, CA2213 |
points_to_analysis_kind
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Określa, czy wykonać PointsToAnalysis |
None
PartialWithoutTrackingFieldsAndProperties, Complete |
specyficzne dla każdej reguły | CA1062, CA1303, CA1508, CA2000, CA2100, CA2213 |
copy_analysis
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Określa, czy należy wykonać analizę kopiowania (śledzi kopiowanie wartości i referencji) |
true lub false |
true dla większości reguł |
CA1062, CA1303, CA1508, CA2000, CA2100, CA2213 |
sufficient_IterationCount_for_weak_KDF_algorithm
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Konfiguruje wystarczającą liczbę iteracji w przypadku korzystania ze słabego algorytmu funkcji wyprowadzania kluczy (KDF) | Integer | 100000 dla większości reguł | CA1062, CA1303, CA1508, CA2000, CA2100, CA2213 |