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
- exclude_async_void_methods
- exclude_single_letter_type_parameters
- output_kind
- required_modifiers
- exclude_extension_method_this_parameter
- null_check_validation_methods
- additional_string_formatting_methods
- excluded_type_names_with_derived_types
- excluded_symbol_names
- disallowed_symbol_names
- exclude_ordefault_methods
- ignore_internalsvisibleto
- try_determine_additional_string_formatting_methods_automatically
- unsafe_DllImportSearchPath_bits
- exclude_aspnet_core_mvc_controllerbase
- dispose_analysis_kind
- dispose_ownership_transfer_at_constructor
- dispose_ownership_transfer_at_method_call
- enum_values_prefix_trigger
- exclude_indirect_base_types
- additional_required_suffixes
- additional_required_generic_interfaces
- additional_inheritance_excluded_symbol_names
- analyzed_symbol_kinds
- use_naming_heuristic
- additional_use_results_methods
- allowed_suffixes
- enable_platform_analyzer_on_pre_net5_target
- exclude_structs
- additional_enum_none_names
- enumeration_methods
- linq_chain_methods
- assume_method_enumerates_parameters
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)internal vagy 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\`1 is 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ó Text Message Caption 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 |
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: