Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Kod kalitesi kuralları, yalnızca önem derecelerini yapılandırmanın yanı sıra ek yapılandırma seçeneklerine sahiptir. Örneğin, her kod kalitesi çözümleyicisi yalnızca kod tabanınızın belirli bölümlerine uygulanacak şekilde yapılandırılabilir. Bu seçenekleri, kural önem derecelerini ve genel düzenleyici tercihlerini belirttiğiniz dosyaya EditorConfig anahtar-değer çiftleri ekleyerek belirtirsiniz.
Note
Bu makalede kuralın önem derecesini yapılandırma işlemi ayrıntılı olarak anlatılmaz. Kuralın önem derecesini ayarlamak için .editorconfig seçeneğinin, burada açıklanan seçeneklere () farklı bir ön eki (dotnet_diagnosticdotnet_code_quality) vardır. Buna ek olarak, burada açıklanan seçenekler yalnızca kod kalitesi kurallarıyla ilgiliyken önem derecesi seçeneği kod stili kuralları için de geçerlidir. Hızlı başvuru olarak, aşağıdaki seçenek söz dizimini kullanarak kuralın önem derecesini yapılandırabilirsiniz:
dotnet_diagnostic.<rule ID>.severity = <severity value>
Bununla birlikte, kural önem derecesini yapılandırma hakkında ayrıntılı bilgi için bkz . Önem derecesi.
Option scopes
Her iyileştirme seçeneği tüm kurallar için, bir kural kategorisi (örneğin, Güvenlik veya Tasarım) veya belirli bir kural için yapılandırılabilir.
All rules
Tüm kurallar için bir seçenek yapılandırma söz dizimi aşağıdaki gibidir:
| Syntax | Example |
|---|---|
| dotnet_code_quality.<SeçenekAdı> = <SeçenekDeğeri> | dotnet_code_quality.api_surface = public |
için değerler <OptionName> Seçenekler altında listelenir.
Kural kategorisi
Kural kategorisi için bir seçenek yapılandırma söz dizimi aşağıdaki gibidir:
| Syntax | Example |
|---|---|
| dotnet_code_quality.<RuleCategory>.<OptionName> = OptionValue | dotnet_code_quality.Naming.api_surface = public |
Aşağıdaki tabloda için <RuleCategory>kullanılabilir değerler listelemektedir.
Design
Documentation
Globalization
Interoperability
Maintainability
Naming
Performance
SingleFile
Reliability
Security
Usage
Specific rule
Belirli bir kural için bir seçeneği yapılandırma söz dizimi aşağıdaki gibidir:
| Syntax | Example |
|---|---|
| dotnet_code_quality.<RuleId>.<OptionName> = <OptionValue> | dotnet_code_quality.CA1040.api_surface = public |
Options
Bu bölümde, kod çözümleyicileri için kullanılabilir yapılandırma seçenekleri listelenmiştir. Daha fazla bilgi için bkz . Çözümleyici yapılandırması.
- 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
- Veri akışı çözümleme seçenekleri
- 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 |
|---|---|---|---|
| API yüzeyinin analiz etmek için hangi bölümü |
public(ve public API'leri için protected geçerlidir)internalveya friend (ve internal API'leri için private protected geçerlidir)private (şunlar için geçerlidir: private API'ler)all (tüm API'ler için geçerlidir)Birden çok değeri virgülle ayırma (,) |
public |
CA1000CA1002CA1003CA1005CA1008CA1010CA1012CA1021CA1024CA1027CA1028CA1030CA1036CA1040CA1041CA1043CA1044CA1045CA1046CA1047CA1051CA1052CA1054CA1055CA1056CA1058CA1062CA1063CA1068CA1070CA1700CA1707CA1708CA1710CA1711CA1714CA1715CA1716CA1717CA1720CA1721CA1725CA1801CA1802CA1815CA1819CA1822CA1859CA2208CA2217CA2225CA2226CA2231CA2234 |
exclude_async_void_methods
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Değer döndürmeyen zaman uyumsuz yöntemlerin yoksayılıp yoksayılmayacağı | truefalse |
false |
CA2007 |
Note
Bu seçenek önceki bir sürümde adlandırılmıştı skip_async_void_methods .
exclude_single_letter_type_parameters
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
Tek karakterli tür parametrelerinin kuraldan dışlanıp dışlanmayacağını, örneğin, SCollection<S> |
truefalse |
false |
CA1715 |
Note
Bu seçenek önceki bir sürümde adlandırılmıştı allow_single_letter_type_parameters .
output_kind
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Bu derleme türünü oluşturan bir projedeki kodun analiz edilmesi gerektiğini belirtir | Numaralandırmanın OutputKind bir veya daha fazla alanı Birden çok değeri virgülle ayırma (,) |
Tüm çıkış türleri | CA1515, CA1516, CA2007 |
required_modifiers
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Analiz edilmesi gereken API'ler için gerekli değiştiricileri belirtir | Aşağıdaki izin verilen değiştiriciler tablosundaki bir veya daha fazla değer Birden çok değeri virgülle ayırma (,) |
Her kurala bağlıdır | CA1802 |
| Allowed Modifier | Summary |
|---|---|
none |
Değiştirici gereksinimi yok |
static veya Shared |
(static Visual Basic'te) olarak Shared bildirilmelidir |
const |
Olarak bildirilmelidir const |
readonly |
Olarak bildirilmelidir readonly |
abstract |
Olarak bildirilmelidir abstract |
virtual |
Olarak bildirilmelidir virtual |
override |
Olarak bildirilmelidir override |
sealed |
Olarak bildirilmelidir sealed |
extern |
Olarak bildirilmelidir extern |
async |
Olarak bildirilmelidir async |
exclude_extension_method_this_parameter
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
Uzantı yöntemlerinin this parametresi için analizin atlanıp atlanmayacağı |
truefalse |
false |
CA1062 |
null_check_validation_methods
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Yönteme geçirilen bağımsız değişkenlerin null olmadığını doğrulayan null denetim doğrulama yöntemlerinin adları | İzin verilen yöntem adı biçimleri (|ile ayrılmış): - Yalnızca yöntem adı (içeren tür veya ad alanına bakılmaksızın adı olan tüm yöntemleri içerir) - simgenin belge kimliği biçiminde, isteğe bağlı M: ön ek içeren tam adlar |
None | CA1062 |
additional_string_formatting_methods
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Ek dize biçimlendirme yöntemlerinin adları | İzin verilen yöntem adı biçimleri (|ile ayrılmış): - Yalnızca yöntem adı (içeren tür veya ad alanına bakılmaksızın adı olan tüm yöntemleri içerir) - simgenin belge kimliği biçiminde, isteğe bağlı M: ön ek içeren tam adlar |
None | CA2241 |
excluded_type_names_with_derived_types
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Türün ve türetilen tüm türlerinin analiz için dışlanması gibi türlerin adları | İzin verilen simge adı biçimleri (|ile ayrılmış): - Yalnızca tür adı (içeren tür veya ad alanına bakılmaksızın adı olan tüm türleri içerir) - simgenin belge kimliği biçiminde, isteğe bağlı T: ön ek içeren tam adlar |
None | CA1001CA1054CA1055CA1056CA1062CA1068CA1303CA1304CA1305CA1508CA2000CA2100CA2301CA2302CA2311CA2312CA2321CA2322CA2327CA2328CA2329CA2330CA3001CA3002CA3003CA3004CA3005CA3006CA3007CA3008CA3009CA3010CA3011CA3012CA5361CA5376CA5377CA5378CA5380CA5381CA5382CA5383CA5384CA5387CA5388CA5389CA5390CA5399CA5400 |
excluded_symbol_names
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Analiz için dışlanan simgelerin adları | İzin verilen simge adı biçimleri (|ile ayrılmış): - Yalnızca sembol adı (içeren tür veya ad alanına bakılmaksızın adı olan tüm simgeleri içerir) - Simgenin belge kimliği biçiminde tam adlar. Her simge adı, yöntemler M: için ön ek, türler için ön ek ve T: ad alanları için ön ek gibi N: bir sembol türü ön eki gerektirir.- .ctor oluşturucular ve .cctor statik oluşturucular için |
None | CA1001CA1054CA1055CA1056CA1062CA1068CA1303CA1304CA1305CA1508CA2000CA2100CA2301CA2302CA2311CA2312CA2321CA2322CA2327CA2328CA2329CA2330CA3001CA3002CA3003CA3004CA3005CA3006CA3007CA3008CA3009CA3010CA3011CA3012CA5361CA5376CA5377CA5378CA5380CA5381CA5382CA5383CA5384CA5387CA5388CA5389CA5390CA5399CA5400 |
disallowed_symbol_names
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Çözümleme bağlamında izin verilmeyen simgelerin adları | İzin verilen simge adı biçimleri (|ile ayrılmış): - Yalnızca sembol adı (içeren tür veya ad alanına bakılmaksızın adı olan tüm simgeleri içerir) - Simgenin belge kimliği biçiminde tam adlar. Her simge adı, yöntemler M: için ön ek, türler için ön ek ve T: ad alanları için ön ek gibi N: bir sembol türü ön eki gerektirir.- .ctor oluşturucular ve .cctor statik oluşturucular için |
None | CA1031 |
exclude_ordefault_methods
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
Ve FirstOrDefault yöntemlerini analizden dışlarLastOrDefault. |
true veya false |
false |
CA1826 |
ignore_internalsvisibleto
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Analizde ile InternalsVisibleToAttribute işaretlenmiş derlemeleri içerir. |
true veya false |
true |
CA1812CA1852 |
try_determine_additional_string_formatting_methods_automatically
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Ek dize biçimlendirme yöntemlerinin buluşsal algılamasını etkinleştirmek için Boole seçeneği. Bir yöntemi, bir parametresi ve ardından string format bir parametresi varsa, dize params object[] biçimlendirme yöntemi olarak kabul edilir. |
true veya false |
false |
CA2241 |
unsafe_DllImportSearchPath_bits
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
Çözümleme için hangi değerinin DllImportSearchPath güvenli olmadığını yapılandırma |
tamsayı değerleri: System.Runtime.InteropServices.DllImportSearchPath |
770 (yani, AssemblyDirectory | UseDllDirectoryForDependencies | ApplicationDirectory) |
CA5393 |
exclude_aspnet_core_mvc_controllerbase
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| CSRF göz önünde bulundurulduğunda ASP.NET Core MVC ControllerBase'i dışlama |
true veya false |
true |
CA5391 |
enum_values_prefix_trigger
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Numaralandırma değerleri adlandırma kuralını tetikleme eşiğini belirtir |
-
AnyEnumValue- Sabit listesi değerlerinden herhangi biri sabit listesi türü adıyla başlıyorsa kural tetikler.
- AllEnumValues- Tüm sabit listesi değerleri sabit listesi türü adıyla başlarsa kural tetikler.
- Heuristic - Kural varsayılan FxCop buluşsal özelliği kullanılarak tetikleniyor (sabit listesi değerlerinin en az %75'i sabit listesi türü adıyla başlıyorsa). |
Heuristic |
CA1712 |
exclude_indirect_base_types
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Dolaylı temel türleri dışla |
true veya false |
true |
CA1710 |
additional_required_suffixes
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Ek gerekli sonekleri belirtir | Gerekli son ekleriyle (ile ayrılmış) tür adlarının listesi (|ile ->ayrılmış). İzin verilen tür adı biçimleri:- Yalnızca tür adı (içeren tür veya ad alanı ne olursa olsun adı olan tüm türleri içerir). - simgenin belge kimliği biçiminde isteğe bağlı T: ön ek içeren tam adlar. |
None | CA1710 |
additional_required_generic_interfaces
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Ek gerekli genel arabirimleri belirtir | Gerekli genel tam arabirimiyle (ile ayrılmış) arabirim adlarının listesi (|ile ayrılmıştır ->). İzin verilen arabirim biçimleri:- Yalnızca arabirim adı (içeren tür veya ad alanına bakılmaksızın adı olan tüm arabirimleri içerir). - simgenin belge kimliği biçiminde isteğe bağlı T: ön ek içeren tam adlar. |
None | CA1010 |
Examples:
| Option Value | Summary |
|---|---|
dotnet_code_quality.CA1010.additional_required_generic_interfaces = ISomething->System.Collections.Generic.IEnumerable`1 |
Ad alanına bakılmaksızın uygulayan ISomething tüm türlerin de uygulaması System.Collections.Generic.IEnumerable\`1beklenir. |
dotnet_code_quality.CA1010.additional_required_generic_interfaces = T:System.Collections.IDictionary->T:System.Collections.Generic.IDictionary`2 |
Uygulayan tüm türlerin System.Collections.IDictionary de uygulaması System.Collections.Generic.IDictionary`2beklenir. |
additional_inheritance_excluded_symbol_names
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Devralma hiyerarşi ağacının dışında tutulacak türleri veya ad alanlarını belirtir | İzin verilen tür adı biçimleri: - Tür veya ad alanı adı (içeren tür veya ad alanına bakılmaksızın adı olan tüm türleri ve ad alanı adı içeren tüm türleri içerir). - Joker karakter simgesiyle biten tür veya ad alanı adı (adı verilen adla başlayan tüm türleri, içeren tür veya ad alanına bakılmaksızın ve ad alanı adı içeren tüm türleri içerir). - Ad alanları için türler veya T: ön ek için isteğe bağlı N: ön ek içeren, simgenin belge kimliği biçimindeki tam adlar.
- Ad alanının türü veya ön eki için isteğe bağlı T: ön ek içeren ve joker karakter simgesiyle biten tam tür veya N: ad alanı adı (tam adı verilen tür adıyla başlayan tüm türleri veya tam adı verilen ad alanı adıyla başlayan tüm türleri içerir). |
N:System.* (Bu değer her zaman sağlanan değere otomatik olarak eklenir) |
CA1501 |
analyzed_symbol_kinds
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Analiz etmek için simge türlerini belirtir | Virgülle ayrılmış liste olarak bir veya daha fazla alanı SymbolKind . | Namespace, NamedType, Method, Property, Event, Parameter |
CA1716 |
use_naming_heuristic
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
Parametrelerin mi yoksa , Textiçeren özellik adlarının mı Message yoksa bu kuralın tetiklenip tetiklenmeyeceğini Captionyapılandırılır |
true veya false |
false |
CA1303 |
additional_use_results_methods
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Sonuçları kullanılması gereken ek özel API'leri belirtir | Ek yöntemlerin adları (|ile ayrılmış). İzin verilen yöntem adı biçimleri: - Yalnızca yöntem adı (içeren tür veya ad alanı ne olursa olsun, ada sahip tüm yöntemleri içerir). - simgenin belge kimliği biçiminde isteğe bağlı M: ön ek içeren tam adlar. |
None | CA1806 |
allowed_suffixes
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| İzin verilebilen sonekleri belirtir | İzin verilen soneklerin listesi (|ile ayrılmış). | None | CA1711 |
enable_platform_analyzer_on_pre_net5_target
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| .NET 5'in öncesinde TFM'ler için analizin etkinleştirilip etkinleştirilmeymeyeceğini belirtir |
true veya false |
false |
CA1416 |
exclude_structs
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Yapıların analizden dışlanıp dışlanmayacağını belirtir |
true veya false |
false |
CA1051 |
additional_enum_none_names
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Sıfır değerli bir numaralandırma alanı için ek izin verilebilen adlar belirtir | Ek adların listesi (|ile ayrılmış). | None | CA1008 |
enumeration_methods
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| IEnumerable'ı numaralandıran ek özel yöntemleri belirtir | Ek yöntemlerin tam adları (|ile ayrılmış). | None | CA1851 |
linq_chain_methods
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
Ek özelleştirilmiş LINQ zinciri yöntemlerini belirtir (yani yöntemler bir IEnumerable bağımsız değişken alır ve yeni IEnumerable bir örnek döndürür) |
Ek yöntemlerin tam adları (|ile ayrılmış). | None | CA1851 |
assume_method_enumerates_parameters
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
Özelleştirilmiş yöntemlerin parametrelerini numaralandırıp numaralandırmayacağını IEnumerable belirtir |
true veya false |
false |
CA1851 |
Veri akışı çözümleme seçenekleri
Bu bölümdeki seçenekler veri akışı çözümleme kurallarını yapılandırılır. Seçenekler şunlardır:
- 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
Veri akışı analizi hakkında daha fazla bilgi için bkz . Veri akışı analizi tabanlı çözümleyiciler yazma.
dispose_analysis_kind
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Atma ihlalleri için analiz edilmesi gereken yolları belirtir |
-
AllPaths - Tüm yollarda (özel durum olmayan ve özel durum yolları) eksik atma ihlallerini izleyin ve rapor edin. Ayrıca, olası atma sızıntılarına neden olabilecek önerilen olmayan atma desenlerinin kullanımına da bayrak ekleyin.
- AllPathsOnlyNotDisposed - Tüm yollarda (özel durum olmayan ve özel durum yolları) eksik atma ihlallerini izleyin ve rapor edin. Olası atma sızıntılarına neden olabilecek önerilen olmayan atma desenlerinin kullanımına bayrak uygulamayın.
- NonExceptionPaths - Eksik atma ihlallerini yalnızca özel durum olmayan program yollarında izleyin ve rapor edin. Ayrıca, olası atma sızıntılarına neden olabilecek önerilen olmayan atma desenlerinin kullanımına da bayrak ekleyin.
- NonExceptionPathsOnlyNotDisposed - Eksik atma ihlallerini yalnızca özel durum olmayan program yollarında izleyin ve rapor edin. Olası atma sızıntılarına neden olabilecek önerilen olmayan atma desenlerinin kullanımına bayrak uygulamayın. |
NonExceptionPaths |
CA2000 |
dispose_ownership_transfer_at_constructor
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Oluşturucu çağrısına geçirilen bağımsız değişkenler için dispose sahiplik aktarımını yapılandırma |
true veya false |
false |
CA2000 |
dispose_ownership_transfer_at_method_call
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Yöntem çağrılarına bağımsız değişken olarak geçirilen atılabilir nesneler için dispose sahiplik aktarımını yapılandırma |
true veya false |
false |
CA2000 |
interprocedural_analysis_kind
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Kaynak yöntem çağrıları için yordamlar arası çözümleme yapılıp yapılmayacağını belirtir |
None, NonContextSensitive, ContextSensitive |
Yapılandırılabilir her kurala özgü | CA1062, CA1303, CA1508, CA2000, CA2100, CA2213 |
max_interprocedural_method_call_chain
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Yordamlar arası veri akışı analizi için analiz etmek için en fazla yöntem çağrı zinciri uzunluğunu belirtir | Unsigned integer | 3 | CA1062, CA1303, CA1508, CA2000, CA2100, CA2213 |
max_interprocedural_lambda_or_local_function_call_chain
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Yordamlar arası veri akışı analizi için analiz etmek üzere maksimum lambda veya yerel işlev çağrı zinciri uzunluğunu belirtir | Unsigned integer | 3 | CA1062, CA1303, CA1508, CA2000, CA2100, CA2213 |
points_to_analysis_kind
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| PointsToAnalysis gerçekleştirilip gerçekleştirilmeyeceğini belirtir |
None, PartialWithoutTrackingFieldsAndProperties, Complete |
Her kurala özgü | CA1062, CA1303, CA1508, CA2000, CA2100, CA2213 |
copy_analysis
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Kopyalama analizinin yapılıp yapılmayacağını belirtir (değeri ve başvuru kopyalarını izler) |
true veya false |
true çoğu kural için |
CA1062, CA1303, CA1508, CA2000, CA2100, CA2213 |
sufficient_IterationCount_for_weak_KDF_algorithm
| Description | Allowable values | Default value | Configurable rules |
|---|---|---|---|
| Zayıf anahtar türetme işlevi (KDF) algoritması kullanılırken yeterli yineleme sayısını yapılandırır | Integer | Çoğu kural için 100000 | CA1062, CA1303, CA1508, CA2000, CA2100, CA2213 |