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.

Note

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ára szolgáló .editorconfig beállítás más előtaggal (dotnet_diagnostic) rendelkezik, mint az itt leírt beállítások (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.

Option scopes

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.

All rules

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

Syntax Example
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 Example
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

Specific rule

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

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

Beállítások

Ez a szakasz a kódelemzők rendelkezésre álló konfigurációs beállításait sorolja fel. További információ: Analyzer konfiguráció.

api_surface

Description Allowable values Default value Configurable rules
Az API-felület melyik része elemezhető public(azokra és public API-kra protected vonatkozik)
internalvagy friend (az api-kra és internal api-kra private protected 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 CA1000CA1002CA1003CA1005CA1008CA1010CA1012CA1021CA1024CA1027CA1028CA1030CA1036CA1040CA1041CA1043CA1044CA1045CA1046CA1047CA1051CA1052CA1054CA1055CA1056CA1058CA1062CA1063CA1068CA1070CA1700CA1707CA1708CA1710CA1711CA1714CA1715CA1716CA1717CA1720CA1721CA1725CA1801CA1802CA1815CA1819CA1822CA1859CA2208CA2217CA2225CA2226CA2231CA2234

exclude_async_void_methods

Description Allowable values Default value Configurable rules
Az aszinkron metódusok figyelmen kívül hagyása, amelyek nem adnak vissza értéket true
false
false CA2007

Note

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

exclude_single_letter_type_parameters

Description Allowable values Default value Configurable rules
Egykarakétes típusparaméterek kizárása a szabályból, S például a Collection<S> true
false
false CA1715

Note

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

output_kind

Description Allowable values Default value Configurable rules
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 CA1515, CA1516, CA2007

required_modifiers

Description Allowable values Default value Configurable rules
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
Allowed Modifier Summary
none Nincs módosító követelmény
static vagy Shared Deklarálni kell(static a Shared 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

Description Allowable values Default value Configurable rules
Kihagyja-e a this bővítménymetelyek paraméterének elemzését? true
false
false CA1062

null_check_validation_methods

Description Allowable values Default value Configurable rules
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:
None CA1062

additional_string_formatting_methods

Description Allowable values Default value Configurable rules
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:
None CA2241

excluded_type_names_with_derived_types

Description Allowable values Default value Configurable rules
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:
None CA1001CA1054CA1055CA1056CA1062CA1068CA1303CA1304CA1305CA1508CA2000CA2100CA2301CA2302CA2311CA2312CA2321CA2322CA2327CA2328CA2329CA2330CA3001CA3002CA3003CA3004CA3005CA3006CA3007CA3008CA3009CA3010CA3011CA3012CA5361CA5376CA5377CA5378CA5380CA5381CA5382CA5383CA5384CA5387CA5388CA5389CA5390CA5399CA5400

excluded_symbol_names

Description Allowable values Default value Configurable rules
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
None CA1001CA1054CA1055CA1056CA1062CA1068CA1303CA1304CA1305CA1508CA2000CA2100CA2301CA2302CA2311CA2312CA2321CA2322CA2327CA2328CA2329CA2330CA3001CA3002CA3003CA3004CA3005CA3006CA3007CA3008CA3009CA3010CA3011CA3012CA5361CA5376CA5377CA5378CA5380CA5381CA5382CA5383CA5384CA5387CA5388CA5389CA5390CA5399CA5400

disallowed_symbol_names

Description Allowable values Default value Configurable rules
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
None CA1031

exclude_ordefault_methods

Description Allowable values Default value Configurable rules
Kizárja és kizárja FirstOrDefault a LastOrDefault metódusokat az elemzésből. true vagy false false CA1826

ignore_internalsvisibleto

Description Allowable values Default value Configurable rules
Tartalmazza az elemzésben InternalsVisibleToAttribute megjelölt szerelvényeket. true vagy false true CA1812CA1852

try_determine_additional_string_formatting_methods_automatically

Description Allowable values Default value Configurable rules
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 formatparams object[] paraméterrel rendelkezik.
true vagy false false CA2241

unsafe_DllImportSearchPath_bits

Description Allowable values Default value Configurable rules
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

Description Allowable values Default value Configurable rules
ASP.NET Core MVC ControllerBase kizárása a CSRF mérlegelésekor true vagy false true CA5391

enum_values_prefix_trigger

Description Allowable values Default value Configurable rules
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

Description Allowable values Default value Configurable rules
Közvetett alaptípusok kizárása true vagy false true CA1710

additional_required_suffixes

Description Allowable values Default value Configurable rules
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.
None CA1710

additional_required_generic_interfaces

Description Allowable values Default value Configurable rules
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.
None CA1010

Examples:

Option Value Summary
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

Description Allowable values Default value Configurable rules
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 T: előtagjának választható N: 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

Description Allowable values Default value Configurable rules
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

Description Allowable values Default value Configurable rules
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

Description Allowable values Default value Configurable rules
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.
None CA1806

allowed_suffixes

Description Allowable values Default value Configurable rules
Engedélyezett utótagokat ad meg Az engedélyezett utótagok listája (|által elválasztva). None CA1711

enable_platform_analyzer_on_pre_net5_target

Description Allowable values Default value Configurable rules
Megadja, hogy engedélyezve legyen-e az elemzés a .NET 5 előtti TFM-ekhez true vagy false false CA1416

exclude_structs

Description Allowable values Default value Configurable rules
Meghatározza, hogy ki kell-e zárni a szerkezeteket az elemzésből true vagy false false CA1051

additional_enum_none_names

Description Allowable values Default value Configurable rules
Nulla értékű enumerálási mező további engedélyezett neveit adja meg További nevek listája (|által elválasztva). None CA1008

enumeration_methods

Description Allowable values Default value Configurable rules
További egyéni metódusokat ad meg, amelyek számba adnak egy IEnumerable-t További metódusok teljes neve (|által elválasztva). None CA1851

linq_chain_methods

Description Allowable values Default value Configurable rules
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). None CA1851

assume_method_enumerates_parameters

Description Allowable values Default value Configurable rules
Megadja, hogy feltételezzük-e, hogy a testreszabott metódusok számba veszi a IEnumerable paramétereket true vagy false false CA1851

Adatfolyam-elemzési lehetőségek

Az ebben a szakaszban található beállítások az adatfolyam-elemzési szabályokat konfigurálják. A lehetőségek a következők:

További információ az adatfolyam-elemzésről: Adatfolyam-elemzés-alapú elemzők írása.

dispose_analysis_kind

Description Allowable values Default value Configurable rules
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

Description Allowable values Default value Configurable rules
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

Description Allowable values Default value Configurable rules
A metódushívások argumentumaként átadott eldobható objektumok tulajdonjogának átruházásának konfigurálása true vagy false false CA2000

interprocedural_analysis_kind

Description Allowable values Default value Configurable rules
Meghatározza, hogy el kell-e végezni a forrásmetódus-meghívások interprokedurális elemzését \, \, \ Minden egyes konfigurálható szabályra vonatkozóan CA1062, CA1303, CA1508, CA2000, CA2100, CA2213

max_interprocedural_method_call_chain

Description Allowable values Default value Configurable rules
Meghatározza az interprokedurális adatfolyam-elemzéshez elemezni kívánt metódus hívásláncának maximális hosszát Unsigned integer 3 CA1062, CA1303, CA1508, CA2000, CA2100, CA2213

max_interprocedural_lambda_or_local_function_call_chain

Description Allowable values Default value Configurable rules
Meghatározza a lambda vagy a helyi függvény hívásláncának maximális hosszát az interprocedurális adatfolyam-elemzéshez. Unsigned integer 3 CA1062, CA1303, CA1508, CA2000, CA2100, CA2213

points_to_analysis_kind

Description Allowable values Default value Configurable rules
Meghatározza, hogy végrehajtásra kerül-e a PointsToAnalysis \, \, \ Minden egyes szabályra vonatkozóan CA1062, CA1303, CA1508, CA2000, CA2100, CA2213

copy_analysis

Description Allowable values Default value Configurable rules
Annak meghatározása, hogy elvégezze-e a másoláselemzést (amely az érték- és referenciapéldányok nyomon követését tartalmazza) true vagy false true a legtöbb szabály esetén CA1062, CA1303, CA1508, CA2000, CA2100, CA2213

sufficient_IterationCount_for_weak_KDF_algorithm

Description Allowable values Default value Configurable rules
A gyenge kulcsú származtatott függvény (KDF) algoritmus használatakor megfelelő iterációszámot konfigurál Integer 100000 a legtöbb szabály esetében CA1062, CA1303, CA1508, CA2000, CA2100, CA2213