Megosztás a következőn keresztül:


Kódminőségi szabály konfigurációs beállításai

A kódminőségi szabályok további konfigurációs lehetőségeket is tartalmaznak, a súlyosságuk konfigurálása mellett. Az egyes kódminőség-elemzők például konfigurálhatók úgy, hogy csak a kódbázis adott részeire vonatkozzanak. Ezeket a beállításokat úgy adhatja meg, hogy kulcs-érték párokat ad hozzá ugyanahhoz EditorConfig a fájlhoz, ahol a szabály súlyosságát és az általános szerkesztő beállításait adja meg.

Feljegyzés

Ez a cikk nem részletezi a szabály súlyosságának konfigurálását. A szabály súlyosságának beállításához használt .editorconfig beállítás előtagja (dotnet_diagnostic) eltér az itt ismertetett beállításoktól (dotnet_code_quality). Emellett az itt ismertetett lehetőségek csak a kódminőségi szabályokra vonatkoznak, míg a súlyossági beállítás a kódstílus-szabályokra is vonatkozik. Rövid útmutatóként konfigurálhatja egy szabály súlyosságát a következő beállításszintaxis használatával:

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

A szabály súlyosságának konfigurálásával kapcsolatos részletes információkért lásd a súlyossági szintet.

Beállítási hatókörök

Minden finomítási beállítás konfigurálható az összes szabályhoz, egy szabálykategóriához (például biztonsághoz vagy tervezéshez) vagy egy adott szabályhoz.

Minden szabály

Az összes szabályhoz tartozó beállítás konfigurálásának szintaxisa a következő:

Syntax Példa
dotnet_code_quality.<OptionName> = <OptionValue> dotnet_code_quality.api_surface = public

Az értékek a <OptionName> Beállítások területen jelennek meg.

Szabályok kategóriája

A szabályok kategóriájához tartozó beállítás konfigurálásának szintaxisa a következő:

Syntax Példa
dotnet_code_quality.<RuleCategory>.<OptionName> = OptionValue dotnet_code_quality.Naming.api_surface = public

Az alábbi táblázat a rendelkezésre álló értékeket sorolja fel <RuleCategory>.

Design
Documentation
Globalization
Interoperability

Maintainability
Naming
Performance
SingleFile

Reliability
Security
Usage

Adott szabály

Egy adott szabály beállításának szintaxisa a következő:

Syntax Példa
dotnet_code_quality.<Szabályazonosító>.<OptionName> = <OptionValue> dotnet_code_quality.CA1040.api_surface = public

Beállítások

Ez a szakasz felsorol néhány elérhető lehetőséget. Az elérhető lehetőségek teljes listájának megtekintéséhez tekintse meg az Analyzer konfigurációját.

api_surface

Leírás Engedélyezett értékek Alapértelmezett érték Konfigurálható szabályok
Az API-felület melyik része elemezhető public(azokra és protected API-kra public vonatkozik)
internalvagy friend (az api-kra és private protected api-kra internal vonatkozik)
private (a következőkre vonatkozik: private API-k)
all (az összes API-ra vonatkozik)

Több érték elkülönítése vesszővel (,)
public CA1000 CA1002 CA1003 CA1005 CA1008 CA1010 CA1012 CA1021 CA1024 CA1027 CA1028 CA1030 CA1036 CA 1040 CA1041 CA1043 CA1044 CA1045 CA1046 CA1047 CA1051 CA1052 CA1054 CA1055 CA1056 CA1058 CA1062 CA1063 CA1068 CA1070 CA1700 CA1707 CA1708 CA1710 CA1711 CA1714 CA1715 CA1716 CA17 17 CA1720 CA1721 CA1725 CA1801 CA1802 CA1815 CA1819 CA1822 CA1859 CA2208 CA2217 CA2225 CA2226 CA2231 CA2234

exclude_async_void_methods

Leírás Engedélyezett értékek Alapértelmezett érték Konfigurálható szabályok
Az aszinkron metódusok figyelmen kívül hagyása, amelyek nem adnak vissza értéket true
false
false CA2007

Feljegyzés

Ez a beállítás egy korábbi verzióban lett elnevezve skip_async_void_methods .

exclude_single_letter_type_parameters

Leírás Engedélyezett értékek Alapértelmezett érték Konfigurálható szabályok
Egykarakétes típusparaméterek kizárása a szabályból, S például a Collection<S> true
false
false CA1715

Feljegyzés

Ez a beállítás egy korábbi verzióban lett elnevezve allow_single_letter_type_parameters .

output_kind

Leírás Engedélyezett értékek Alapértelmezett érték Konfigurálható szabályok
Meghatározza, hogy az ilyen típusú szerelvényt létrehozó projekt kódját elemezni kell Az enumerálás egy vagy több mezője OutputKind

Több érték elkülönítése vesszővel (,)
Minden kimeneti típus CA2007

required_modifiers

Leírás Engedélyezett értékek Alapértelmezett érték Konfigurálható szabályok
Megadja az elemezni kívánt API-khoz szükséges módosítókat Egy vagy több érték az alábbi engedélyezett módosítók táblából

Több érték elkülönítése vesszővel (,)
Minden szabálytól függ CA1802
Engedélyezett módosító Összegzés
none Nincs módosító követelmény
static vagy Shared Deklarálni kell(Shared a static Visual Basicben)
const Deklarálni kell a const
readonly Deklarálni kell a readonly
abstract Deklarálni kell a abstract
virtual Deklarálni kell a virtual
override Deklarálni kell a override
sealed Deklarálni kell a sealed
extern Deklarálni kell a extern
async Deklarálni kell a async

exclude_extension_method_this_parameter

Leírás Engedélyezett értékek Alapértelmezett érték Konfigurálható szabályok
Kihagyja-e a this bővítménymetelyek paraméterének elemzését? true
false
false CA1062

null_check_validation_methods

Leírás Engedélyezett értékek Alapértelmezett érték Konfigurálható szabályok
A metódusnak átadott argumentumok nem null értékűségét ellenőrző null-ellenőrzési módszerek nevei Engedélyezett metódusnévformátumok (|által elválasztva):
- Csak a metódus neve (a névvel rendelkező összes metódust tartalmazza, függetlenül attól, hogy milyen típust vagy névteret tartalmaz)
- A szimbólum dokumentációazonosító-formátumában szereplő teljes nevek opcionális előtaggal M:
Egyik sem CA1062

additional_string_formatting_methods

Leírás Engedélyezett értékek Alapértelmezett érték Konfigurálható szabályok
További sztringformázási metódusok nevei Engedélyezett metódusnévformátumok (|által elválasztva):
- Csak a metódus neve (a névvel rendelkező összes metódust tartalmazza, függetlenül attól, hogy milyen típust vagy névteret tartalmaz)
- A szimbólum dokumentációazonosító-formátumában szereplő teljes nevek opcionális előtaggal M:
Egyik sem CA2241

excluded_type_names_with_derived_types

Leírás Engedélyezett értékek Alapértelmezett érték Konfigurálható szabályok
Típusok nevei, így a típus és annak összes származtatott típusa ki van zárva az elemzéshez Engedélyezett szimbólumnévformátumok (|által elválasztva):
- Csak típusnév (a névvel rendelkező összes típust tartalmazza, függetlenül attól, hogy milyen típust vagy névteret tartalmaz)
- A szimbólum dokumentációazonosító-formátumában szereplő teljes nevek opcionális előtaggal T:
Egyik sem CA1001 CA1054 CA1055 CA1056 CA1062 CA1068 CA1303 CA1304 CA1305 CA1508 CA2000 CA2100 CA2301 CA 2302 CA2311 CA2312 CA2321 CA2322 CA2327 CA2328 CA2329 CA2330 CA3001 CA3002 CA3003 CA3004 CA3005 CA3006 CA3007 CA3008 CA3009 CA3010 CA3011 CA3012 CA5361 CA5376 CA5377 CA53 CA5380 CA5381 CA5382 CA5383 CA5384 CA5387 CA5388 CA5389 CA5390 CA5399 CA5400

excluded_symbol_names

Leírás Engedélyezett értékek Alapértelmezett érték Konfigurálható szabályok
Az elemzéshez kizárt szimbólumok nevei Engedélyezett szimbólumnévformátumok (|által elválasztva):
- Csak szimbólumnév (a névvel ellátott összes szimbólumot tartalmazza, függetlenül attól, hogy milyen típusú vagy névtérrel rendelkezik)
- A szimbólum dokumentációazonosító-formátumában szereplő teljes nevek. Minden szimbólumnévhez szükség van egy szimbólumtípus előtagra, például M: a metódusok előtagja, T: a típusok előtagja és N: a névterek előtagja.
- .ctor konstruktorok és .cctor statikus konstruktorok számára
Egyik sem CA1001 CA1054 CA1055 CA1056 CA1062 CA1068 CA1303 CA1304 CA1305 CA1508 CA2000 CA2100 CA2301 CA 2302 CA2311 CA2312 CA2321 CA2322 CA2327 CA2328 CA2329 CA2330 CA3001 CA3002 CA3003 CA3004 CA3005 CA3006 CA3007 CA3008 CA3009 CA3010 CA3011 CA3012 CA5361 CA5376 CA5377 CA53 CA5380 CA5381 CA5382 CA5383 CA5384 CA5387 CA5388 CA5389 CA5390 CA5399 CA5400

disallowed_symbol_names

Leírás Engedélyezett értékek Alapértelmezett érték Konfigurálható szabályok
Az elemzés kontextusában nem engedélyezett szimbólumok nevei Engedélyezett szimbólumnévformátumok (|által elválasztva):
- Csak szimbólumnév (a névvel ellátott összes szimbólumot tartalmazza, függetlenül attól, hogy milyen típusú vagy névtérrel rendelkezik)
- A szimbólum dokumentációazonosító-formátumában szereplő teljes nevek. Minden szimbólumnévhez szükség van egy szimbólumtípus előtagra, például M: a metódusok előtagja, T: a típusok előtagja és N: a névterek előtagja.
- .ctor konstruktorok és .cctor statikus konstruktorok számára
Egyik sem CA1031

exclude_ordefault_methods

Leírás Engedélyezett értékek Alapértelmezett érték Konfigurálható szabályok
Kizárja és kizárja FirstOrDefault a LastOrDefault metódusokat az elemzésből. true vagy false false CA1826

ignore_internalsvisibleto

Leírás Engedélyezett értékek Alapértelmezett érték Konfigurálható szabályok
Tartalmazza az elemzésben InternalsVisibleToAttribute megjelölt szerelvényeket. true vagy false true CA1812 CA1852

try_determine_additional_string_formatting_methods_automatically

Leírás Engedélyezett értékek Alapértelmezett érték Konfigurálható szabályok
Logikai lehetőség további sztringformázási módszerek heurisztikus észlelésének engedélyezésére.
A metódusok akkor minősülnek sztringformázási metódusnak, ha egy paraméterrel és egy string format params object[] paraméterrel rendelkezik.
true vagy false false CA2241

unsafe_DllImportSearchPath_bits

Leírás Engedélyezett értékek Alapértelmezett érték Konfigurálható szabályok
Az elemzés szempontjából DllImportSearchPath nem biztonságos érték konfigurálása A következő egész számértékei: System.Runtime.InteropServices.DllImportSearchPath 770 (azaz AssemblyDirectory | UseDllDirectoryForDependencies | ApplicationDirectory) CA5393

exclude_aspnet_core_mvc_controllerbase

Leírás Engedélyezett értékek Alapértelmezett érték Konfigurálható szabályok
ASP.NET Core MVC ControllerBase kizárása a CSRF mérlegelésekor true vagy false true CA5391

dispose_analysis_kind

Leírás Engedélyezett értékek Alapértelmezett érték Konfigurálható szabályok
Meghatározza, hogy mely elérési utakat kell elemezni az elidegenítési szabálysértések esetén - AllPaths – A hiányzó megsemmisítési szabálysértések nyomon követése és jelentése az összes útvonalon (kivételmentes és kivételi útvonalakon). Emellett a nem ajánlott megsemmisítési minták használatát is megjelölheti, amelyek potenciális ártalmatlanítási szivárgásokat okozhatnak.
- AllPathsOnlyNotDisposed – A hiányzó megsemmisítési szabálysértések nyomon követése és jelentése az összes útvonalon (kivételmentes és kivételi útvonalakon). Ne jelölje meg a nem ajánlott megsemmisítési minták használatát, amelyek potenciális ártalmatlanítási szivárgást okozhatnak.
- NonExceptionPaths – A hiányzó elidegenítési szabálysértések nyomon követése és jelentése csak a kivétel nélküli programútvonalakon. Emellett a nem ajánlott megsemmisítési minták használatát is megjelölheti, amelyek potenciális ártalmatlanítási szivárgásokat okozhatnak.
- NonExceptionPathsOnlyNotDisposed – A hiányzó elidegenítési szabálysértések nyomon követése és jelentése csak a kivétel nélküli programútvonalakon. Ne jelölje meg a nem ajánlott megsemmisítési minták használatát, amelyek potenciális ártalmatlanítási szivárgást okozhatnak.
NonExceptionPaths CA2000

dispose_ownership_transfer_at_constructor

Leírás Engedélyezett értékek Alapértelmezett érték Konfigurálható szabályok
A konstruktorhívásnak átadott argumentumok tulajdonjog-átruházásának konfigurálása true vagy false false CA2000

dispose_ownership_transfer_at_method_call

Leírás Engedélyezett értékek Alapértelmezett érték Konfigurálható szabályok
A metódushívások argumentumaként átadott eldobható objektumok tulajdonjogának átruházásának konfigurálása true vagy false false CA2000

enum_values_prefix_trigger

Leírás Engedélyezett értékek Alapértelmezett érték Konfigurálható szabályok
Meghatározza az enumerálási értékek elnevezési szabály aktiválásának küszöbértékét - AnyEnumValue – A szabály akkor aktiválódik, ha a számértékek bármelyike a számtípus nevével kezdődik.
- AllEnumValues – A szabály akkor aktiválódik, ha az összes enumerálási érték a számtípus nevével kezdődik.
- Heuristic - A szabály az alapértelmezett FxCop heurisztikus használatával aktiválódik (vagyis amikor a számértékek legalább 75%-a a számtípus nevével kezdődik).
Heuristic CA1712

exclude_indirect_base_types

Leírás Engedélyezett értékek Alapértelmezett érték Konfigurálható szabályok
Közvetett alaptípusok kizárása true vagy false true CA1710

additional_required_suffixes

Leírás Engedélyezett értékek Alapértelmezett érték Konfigurálható szabályok
További kötelező utótagokat ad meg A típusnevek listája (|által elválasztva) a szükséges utótaggal (elválasztva).-> Engedélyezett típusnévformátumok:
– Csak típusnév (a névvel rendelkező összes típust tartalmazza, függetlenül a típustól vagy a névtértől).
- A szimbólum dokumentációazonosító-formátumában szereplő teljes nevek opcionális T: előtaggal.
Egyik sem CA1710

additional_required_generic_interfaces

Leírás Engedélyezett értékek Alapértelmezett érték Konfigurálható szabályok
További szükséges általános adaptereket ad meg A (|által elválasztott) felületnevek listája a szükséges általános, teljes mértékben minősített felülettel (elválasztva).-> Engedélyezett illesztőformátumok:
– Csak a felület neve (a névvel rendelkező összes illesztőt tartalmazza, függetlenül attól, hogy milyen típust vagy névteret tartalmaz).
- A szimbólum dokumentációazonosító-formátumában szereplő teljes nevek opcionális T: előtaggal.
Egyik sem CA1010

Példák:

Beállítás értéke Összegzés
dotnet_code_quality.CA1010.additional_required_generic_interfaces = ISomething->System.Collections.Generic.IEnumerable`1 A névtértől függetlenül implementáló ISomething összes típus várhatóan implementálni System.Collections.Generic.IEnumerable\`1is fog.
dotnet_code_quality.CA1010.additional_required_generic_interfaces = T:System.Collections.IDictionary->T:System.Collections.Generic.IDictionary`2 Minden implementálási System.Collections.IDictionary típust várhatóan a rendszer is implementálni fog System.Collections.Generic.IDictionary`2.

additional_inheritance_excluded_symbol_names

Leírás Engedélyezett értékek Alapértelmezett érték Konfigurálható szabályok
Az öröklési hierarchiafából kizárandó típusokat vagy névtereket adja meg Engedélyezett típusnévformátumok:
– Típus vagy névtérnév (a névtér típusától vagy névterétől függetlenül a névtérrel rendelkező összes típust tartalmazza, valamint azokat a típusokat, amelyeknek a névtere tartalmazza a nevet).
- Típus vagy névtér neve helyettesítő karakterrel végződik (tartalmazza az összes olyan típust, amelynek a neve a megadott névvel kezdődik, függetlenül attól, hogy a névtér vagy a névtér tartalmazza-e a nevet, és minden olyan típust, amelynek a névtere tartalmazza a nevet).
- A szimbólum dokumentációazonosító-formátumában szereplő teljes nevek választható előtaggal a T: névterek típusaihoz vagy N: előtagjaihoz.
- Teljesen minősített típus- vagy névtérnév a névtér típusának vagy N: előtagjának választható T: előtagjával, és a helyettesítő karakterrel végződik (tartalmazza az összes olyan típust, amelynek teljes neve a megadott típusnévvel kezdődik, vagy minden olyan típust, amelynek teljes neve a megadott névtérnévvel kezdődik).
N:System.* (Ez az érték mindig automatikusan hozzáadódik a megadott értékhez) CA1501

analyzed_symbol_kinds

Leírás Engedélyezett értékek Alapértelmezett érték Konfigurálható szabályok
Megadja az elemezni kívánt szimbólumtípusokat Egy vagy több mező SymbolKind vesszővel tagolt listaként. Namespace, NamedType, Method, Property, Event, Parameter CA1716

use_naming_heuristic

Leírás Engedélyezett értékek Alapértelmezett érték Konfigurálható szabályok
Konfigurálja, hogy a szabályt tartalmazó TextMessageCaption paraméterek vagy tulajdonságnevek vagy tulajdonságnevek aktiválhatók-e true vagy false false CA1303

additional_use_results_methods

Leírás Engedélyezett értékek Alapértelmezett érték Konfigurálható szabályok
További egyéni API-kat ad meg, amelyek eredményeit használni kell További metódusok nevei (|által elválasztva). Engedélyezett metódusnévformátumok:
– Csak a metódus neve (a névvel ellátott összes metódust tartalmazza, függetlenül attól, hogy milyen típust vagy névteret tartalmaz).
- A szimbólum dokumentációazonosító-formátumában szereplő teljes nevek opcionális M: előtaggal.
Egyik sem CA1806

allowed_suffixes

Leírás Engedélyezett értékek Alapértelmezett érték Konfigurálható szabályok
Engedélyezett utótagokat ad meg Az engedélyezett utótagok listája (|által elválasztva). Egyik sem CA1711

enable_platform_analyzer_on_pre_net5_target

Leírás Engedélyezett értékek Alapértelmezett érték Konfigurálható szabályok
Megadja, hogy engedélyezve legyen-e az elemzés a .NET 5 előtti TFM-ekhez true vagy false false CA1416

exclude_structs

Leírás Engedélyezett értékek Alapértelmezett érték Konfigurálható szabályok
Meghatározza, hogy ki kell-e zárni a szerkezeteket az elemzésből true vagy false false CA1051

additional_enum_none_names

Leírás Engedélyezett értékek Alapértelmezett érték Konfigurálható szabályok
Nulla értékű enumerálási mező további engedélyezett neveit adja meg További nevek listája (|által elválasztva). Egyik sem CA1008

enumeration_methods

Leírás Engedélyezett értékek Alapértelmezett érték Konfigurálható szabályok
További egyéni metódusokat ad meg, amelyek számba adnak egy IEnumerable-t További metódusok teljes neve (|által elválasztva). Egyik sem CA1851

linq_chain_methods

Leírás Engedélyezett értékek Alapértelmezett érték Konfigurálható szabályok
További testreszabott LINQ-lánc metódusokat ad meg (vagyis a metódusok argumentumot IEnumerable vesznek fel, és új IEnumerable példányt ad vissza) További metódusok teljes neve (|által elválasztva). Egyik sem CA1851

assume_method_enumerates_parameters

Leírás Engedélyezett értékek Alapértelmezett érték Konfigurálható szabályok
Megadja, hogy feltételezzük-e, hogy a testreszabott metódusok számba veszi a IEnumerable paramétereket true vagy false false CA1851