Opcje konfiguracji reguły jakości kodu

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.

Uwaga

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.

Zakresy opcji

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.

Wszystkie reguły

Składnia konfigurowania opcji dla wszystkich reguł jest następująca:

Składnia Przykład
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:

Składnia Przykład
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

Określona reguła

Składnia konfigurowania opcji dla określonej reguły jest następująca:

Składnia Przykład
dotnet_code_quality.<RuleId>.<OptionName> = <OptionValue> dotnet_code_quality.CA1040.api_surface = public

Opcje

W tej sekcji wymieniono niektóre dostępne opcje. Aby wyświetlić pełną listę dostępnych opcji, zobacz Konfiguracja analizatora.

api_surface

opis Dozwolone wartości Domyślna wartość Konfigurowalne reguły
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 CA1000 CA1002 CA1003 CA1005 CA1008 CA1010 CA1012 CA1021 CA1024 CA1027 CA1027 CA1028 CA1030 CA1036 CA10361040 CA1041 CA1043 CA10444 CA1045 CA1046 CA1047 CA1051 CA1052 CA1054 CA10555 CA1056 CA1058 CA1062 CA1063 CA1068 CA1070 CA1700 CA1707 CA1708 CA1710 CA1711 CA1714 CA1715 CA1716 CA1716 CA171717 CA1720 CA1721 CA1725 CA1801 CA1802 CA1815 CA1819 CA1822 CA1859 CA2208 CA2217 CA22225 CA2226 CA2231 CA2234

exclude_async_void_methods

opis Dozwolone wartości Domyślna wartość Konfigurowalne reguły
Czy ignorować metody asynchroniczne, które nie zwracają wartości true
false
false CA2007

Uwaga

Ta opcja została nazwana skip_async_void_methods we wcześniejszej wersji.

exclude_single_letter_type_parameters

opis Dozwolone wartości Domyślna wartość Konfigurowalne reguły
Czy wykluczyć parametry typu jednoznakowego z reguły, na przykład w SCollection<S> true
false
false CA1715

Uwaga

Ta opcja została nazwana allow_single_letter_type_parameters we wcześniejszej wersji.

output_kind

opis Dozwolone wartości Domyślna wartość Konfigurowalne reguły
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 CA2007

required_modifiers

opis Dozwolone wartości Domyślna wartość Konfigurowalne reguły
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
Dozwolony modyfikator Podsumowanie
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

opis Dozwolone wartości Domyślna wartość Konfigurowalne reguły
Czy pominąć analizę this parametru metod rozszerzeń true
false
false CA1062

null_check_validation_methods

opis Dozwolone wartości Domyślna wartość Konfigurowalne reguły
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
Brak CA1062

additional_string_formatting_methods

opis Dozwolone wartości Domyślna wartość Konfigurowalne reguły
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
Brak CA2241

excluded_type_names_with_derived_types

opis Dozwolone wartości Domyślna wartość Konfigurowalne reguły
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
Brak 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 CA5377 CA53378 CA5380 CA5381 CA5382 CA5383 CA5384 CA5387 CA5388 CA5389 CA5390 CA5390 CA5400

excluded_symbol_names

opis Dozwolone wartości Domyślna wartość Konfigurowalne reguły
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
Brak 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 CA5377 CA53378 CA5380 CA5381 CA5382 CA5383 CA5384 CA5387 CA5388 CA5389 CA5390 CA5390 CA5400

disallowed_symbol_names

opis Dozwolone wartości Domyślna wartość Konfigurowalne reguły
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
Brak CA1031

exclude_ordefault_methods

opis Dozwolone wartości Domyślna wartość Konfigurowalne reguły
FirstOrDefault Wyklucza metody i LastOrDefault z analizy. true lub false false CA1826

ignore_internalsvisibleto

opis Dozwolone wartości Domyślna wartość Konfigurowalne reguły
Zawiera zestawy oznaczone InternalsVisibleToAttribute w analizie. true lub false true CA1812 CA1852

try_determine_additional_string_formatting_methods_automatically

opis Dozwolone wartości Domyślna wartość Konfigurowalne reguły
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

opis Dozwolone wartości Domyślna wartość Konfigurowalne reguły
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

opis Dozwolone wartości Domyślna wartość Konfigurowalne reguły
Wykluczanie ASP.NET Core MVC ControllerBase podczas rozważania csrf true lub false true CA5391

dispose_analysis_kind

opis Dozwolone wartości Domyślna wartość Konfigurowalne reguły
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

opis Dozwolone wartości Domyślna wartość Konfigurowalne reguły
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

opis Dozwolone wartości Domyślna wartość Konfigurowalne reguły
Konfigurowanie przenoszenia własności usuwania dla jednorazowych obiektów przekazywanych jako argumenty do wywołań metod true lub false false CA2000

enum_values_prefix_trigger

opis Dozwolone wartości Domyślna wartość Konfigurowalne reguły
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

opis Dozwolone wartości Domyślna wartość Konfigurowalne reguły
Wykluczanie typów baz pośrednich true lub false true CA1710

additional_required_suffixes

opis Dozwolone wartości Domyślna wartość Konfigurowalne reguły
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.
Brak CA1710

additional_required_generic_interfaces

opis Dozwolone wartości Domyślna wartość Konfigurowalne reguły
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.
Brak CA1010

Przykłady:

Wartość opcji Podsumowanie
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

opis Dozwolone wartości Domyślna wartość Konfigurowalne reguły
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

opis Dozwolone wartości Domyślna wartość Konfigurowalne reguły
Określa rodzaje symboli do przeanalizowania Co najmniej jedno pole SymbolKind listy rozdzielone przecinkami. Namespace, NamedType, Method, Property, Event, Parameter CA1716

use_naming_heuristic

opis Dozwolone wartości Domyślna wartość Konfigurowalne reguły
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

opis Dozwolone wartości Domyślna wartość Konfigurowalne reguły
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.
Brak CA1806

allowed_suffixes

opis Dozwolone wartości Domyślna wartość Konfigurowalne reguły
Określa dozwolone sufiksy Lista (oddzielona przez |) dozwolonych sufiksów. Brak CA1711

enable_platform_analyzer_on_pre_net5_target

opis Dozwolone wartości Domyślna wartość Konfigurowalne reguły
Określa, czy włączyć analizę dla serwera TFM przed platformą .NET 5 true lub false false CA1416

exclude_structs

opis Dozwolone wartości Domyślna wartość Konfigurowalne reguły
Określa, czy należy wykluczyć struktury z analizy true lub false false CA1051

additional_enum_none_names

opis Dozwolone wartości Domyślna wartość Konfigurowalne reguły
Określa dodatkowe dozwolone nazwy dla pola wyliczania zerowej wartości Lista dodatkowych nazw (oddzielona |). Brak CA1008

enumeration_methods

opis Dozwolone wartości Domyślna wartość Konfigurowalne reguły
Określa dodatkowe metody niestandardowe, które wyliczają element IEnumerable W pełni kwalifikowane nazwy dodatkowych metod (oddzielone przez |). Brak CA1851

linq_chain_methods

opis Dozwolone wartości Domyślna wartość Konfigurowalne reguły
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 |). Brak CA1851

assume_method_enumerates_parameters

opis Dozwolone wartości Domyślna wartość Konfigurowalne reguły
Określa, czy zakładać, że dostosowane metody wyliczają swoje IEnumerable parametry true lub false false CA1851