Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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ó.
- 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
- Adatfolyam-elemzési lehetőségek
- 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 |
|---|---|---|---|
| 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 | truefalse |
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> |
truefalse |
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? |
truefalse |
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:
- 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
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 |