Aracılığıyla paylaş


Kod kalitesi kuralı yapılandırma seçenekleri

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.

Seçenek kapsamları

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.

Tüm kurallar

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 (Bu, bir yapılandırma seçeneğini belirten bir koddur.) dotnet_code_quality.Naming.api_surface = public

Aşağıdaki tabloda <RuleCategory> için kullanılabilir değerler listelenmiştir.

Design
Documentation
Globalization
Interoperability

Maintainability
Naming
Performance
SingleFile

Reliability
Security
Usage

Belirli bir kural

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ı.

api_surface

Description İzin verilebilen değerler Varsayılan değer Yapılandırılabilir kurallar
API yüzeyinin hangi bölümünü analiz etmek? 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 İzin verilebilen değerler Varsayılan değer Yapılandırılabilir kurallar
Zaman uyumsuz ve değer döndürmeyen yöntemlerin yoksayılıp yoksayılmayacağı true
false
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 İzin verilebilen değerler Varsayılan değer Yapılandırılabilir kurallar
Tek karakterli tür parametrelerinin kuraldan dışlanıp dışlanmayacağını, örneğin, SCollection<S> true
false
false CA1715

Note

Bu seçenek önceki bir sürümde adlandırılmıştı allow_single_letter_type_parameters .

output_kind

Description İzin verilebilen değerler Varsayılan değer Yapılandırılabilir kurallar
Bu derleme türünü oluşturan bir projedeki kodun analiz edilmesi gerektiğini belirtir Enumerasyonun OutputKind alanlarından biri veya daha fazlası

Birden çok değeri virgülle ayırma (,)
Tüm çıkış türleri CA1515, CA1516, CA2007

required_modifiers

Description İzin verilebilen değerler Varsayılan değer Yapılandırılabilir kurallar
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
İzin Verilen Değiştirici 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 İzin verilebilen değerler Varsayılan değer Yapılandırılabilir kurallar
Uzantı yöntemlerinin this parametresi için analizin atlanıp atlanmayacağı true
false
false CA1062

null_check_validation_methods

Description İzin verilebilen değerler Varsayılan değer Yapılandırılabilir kurallar
Yönteme geçirilen parametrelerin null olmadığını doğrulayan null denetim doğrulama yöntemlerinin isimleri İ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 İzin verilebilen değerler Varsayılan değer Yapılandırılabilir kurallar
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 İzin verilebilen değerler Varsayılan değer Yapılandırılabilir kurallar
Analizden hariç tutulacak olan türlerin ve türetilmiş 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 İzin verilebilen değerler Varsayılan değer Yapılandırılabilir kurallar
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)
- Tam nitelikli adlar, simgenin belge kimliği formatında. Her sembol adı, yöntemler için M:, türler için T: ve ad alanları için N: gibi bir sembol türü ön eki gerektirir.
- .ctor oluşturucular ve .cctor statik oluşturucular için
None CA1001CA1054CA1055CA1056CA1062CA1068CA1303CA1304CA1305CA1508CA2000CA2100CA2301CA2302CA2311CA2312CA2321CA2322CA2327CA2328CA2329CA2330CA3001CA3002CA3003CA3004CA3005CA3006CA3007CA3008CA3009CA3010CA3011CA3012CA5361CA5376CA5377CA5378CA5380CA5381CA5382CA5383CA5384CA5387CA5388CA5389CA5390CA5399CA5400

disallowed_symbol_names

Description İzin verilebilen değerler Varsayılan değer Yapılandırılabilir kurallar
Çö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)
- Tam nitelikli adlar, simgenin belge kimliği formatında. Her sembol adı, yöntemler için M:, türler için T: ve ad alanları için N: gibi bir sembol türü ön eki gerektirir.
- .ctor oluşturucular ve .cctor statik oluşturucular için
None CA1031

exclude_ordefault_methods

Description İzin verilebilen değerler Varsayılan değer Yapılandırılabilir kurallar
FirstOrDefault ve LastOrDefault yöntemlerini analizden dışlar. true veya false false CA1826

ignore_internalsvisibleto

Description İzin verilebilen değerler Varsayılan değer Yapılandırılabilir kurallar
Analizde InternalsVisibleToAttribute ile işaretlenmiş derlemeleri içerir. true veya false true CA1812CA1852

try_determine_additional_string_formatting_methods_automatically

Description İzin verilebilen değerler Varsayılan değer Yapılandırılabilir kurallar
Ek dize biçimlendirme yöntemlerinin buluşsal algılamasını etkinleştirmek için Boole seçeneği.
Bir yöntem, bir string format parametresi ve bunu takip eden bir params object[] parametresi varsa, dize biçimlendirme yöntemi olarak kabul edilir.
true veya false false CA2241

unsafe_DllImportSearchPath_bits

Description İzin verilebilen değerler Varsayılan değer Yapılandırılabilir kurallar
Çö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 İzin verilebilen değerler Varsayılan değer Yapılandırılabilir kurallar
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 İzin verilebilen değerler Varsayılan değer Yapılandırılabilir kurallar
"Enum değerleri adlandırma kuralını tetiklemek için eşiği belirtir" - AnyEnumValue- Sabit listesi değerlerinden herhangi biri sabit listesi türü adıyla başlıyorsa kural tetikler.
- AllEnumValues - Tüm enum değerleri enum türü adıyla başlıyorsa kural tetiklenir.
- 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 İzin verilebilen değerler Varsayılan değer Yapılandırılabilir kurallar
Dolaylı temel türleri dışla true veya false true CA1710

additional_required_suffixes

Description İzin verilebilen değerler Varsayılan değer Yapılandırılabilir kurallar
İlaveten gerekli olan 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 İzin verilebilen değerler Varsayılan değer Yapılandırılabilir kurallar
Gerekli ek genel arabirimleri belirtir Arabirim adlarının listesi (| ile ayrılmış), gerekli genel tam nitelikli arabirimleriyle birlikte (-> 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:

Seçenek Değeri Summary
dotnet_code_quality.CA1010.additional_required_generic_interfaces = ISomething->System.Collections.Generic.IEnumerable`1 Ad alanı ne olursa olsun ISomething uygulayan tüm türlerin ayrıca System.Collections.Generic.IEnumerable\`1 uygulamaları gerekir.
dotnet_code_quality.CA1010.additional_required_generic_interfaces = T:System.Collections.IDictionary->T:System.Collections.Generic.IDictionary`2 System.Collections.IDictionary yapan tüm türlerin, aynı zamanda System.Collections.Generic.IDictionary`2 de uygulaması beklenir.

additional_inheritance_excluded_symbol_names

Description İzin verilebilen değerler Varsayılan değer Yapılandırılabilir kurallar
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).
- Simgenin belge kimliği biçiminde, türler için isteğe bağlı T: ön eki veya ad alanları için N: ön eki ile tam nitelikli adlar.
- İsteğe bağlı olarak tür için T: veya ad alanı için N: ön eki içeren ve joker simgeyle biten tam nitelikli tür veya ad alanı adı (bu, tam adı verilen tür adıyla başlayan tüm türleri veya ad alanı adıyla başlayan tüm türleri kapsar).
N:System.* (Bu değer her zaman sağlanan değere otomatik olarak eklenir) CA1501

analyzed_symbol_kinds

Description İzin verilebilen değerler Varsayılan değer Yapılandırılabilir kurallar
Analiz etmek için simge türlerini belirtir Bir veya daha fazla SymbolKind alanını virgülle ayrılmış bir liste olarak. Namespace, NamedType, Method, Property, Event, Parameter CA1716

use_naming_heuristic

Description İzin verilebilen değerler Varsayılan değer Yapılandırılabilir kurallar
Parametrelerin veya Text, Message ya da Caption içeren özellik adlarının bu kuralı tetikleyip tetiklemeyeceğini yapılandırır. true veya false false CA1303

additional_use_results_methods

Description İzin verilebilen değerler Varsayılan değer Yapılandırılabilir kurallar
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 İzin verilebilen değerler Varsayılan değer Yapılandırılabilir kurallar
İzin verilebilen sonekleri belirtir İzin verilen soneklerin listesi (|ile ayrılmış). None CA1711

enable_platform_analyzer_on_pre_net5_target

Description İzin verilebilen değerler Varsayılan değer Yapılandırılabilir kurallar
.NET 5'in öncesinde TFM'ler için analizin etkinleştirilip etkinleştirilmeymeyeceğini belirtir true veya false false CA1416

exclude_structs

Description İzin verilebilen değerler Varsayılan değer Yapılandırılabilir kurallar
Yapıların analizden dışlanıp dışlanmayacağını belirtir true veya false false CA1051

additional_enum_none_names

Description İzin verilebilen değerler Varsayılan değer Yapılandırılabilir kurallar
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 İzin verilebilen değerler Varsayılan değer Yapılandırılabilir kurallar
IEnumerable'ı numaralandıran ek özel yöntemleri belirler Ek yöntemlerin tam nitelikli adları (| ile ayrılmış). None CA1851

linq_chain_methods

Description İzin verilebilen değerler Varsayılan değer Yapılandırılabilir kurallar
Ekstra özelleştirilmiş LINQ zinciri yöntemlerini belirtir (yani, yöntemler bir IEnumerable bağımsız değişken alır ve yeni bir IEnumerable örnek döndürür) Ek yöntemlerin tam nitelikli adları (| ile ayrılmış). None CA1851

assume_method_enumerates_parameters

Description İzin verilebilen değerler Varsayılan değer Yapılandırılabilir kurallar
Özelleştirilmiş yöntemlerin parametrelerini numaralandırdığının varsayılıp varsayılmayacağı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:

Veri akışı analizi hakkında daha fazla bilgi için bkz . Veri akışı analizi tabanlı çözümleyiciler yazma.

dispose_analysis_kind

Description İzin verilebilen değerler Varsayılan değer Yapılandırılabilir kurallar
Yok etme ihlalleri için kontrol edilmesi gereken yolları belirtir - AllPaths - Tüm yollarda (istisna olmayan ve istisna yolları) eksik yok etme ihlallerini izleyin ve rapor edin. Ayrıca, olası sızıntılara neden olabilecek önemli olmayan atma desenlerinin kullanımını da işaretleyin.
- AllPathsOnlyNotDisposed - Tüm yollarda (özel durum olmayan ve özel durum yolları) eksik atma ihlallerini izleyin ve rapor edin. Önerilmeyen bertaraf etme desenlerinin olası sızma sorunlarına neden olabilecek kullanımlarını işaretlemeyin.
- NonExceptionPaths - Eksik atma ihlallerini yalnızca özel durum olmayan program yollarında izleyin ve rapor edin. Ayrıca, olası sızıntılara neden olabilecek önemli olmayan atma desenlerinin kullanımını da işaretleyin.
- NonExceptionPathsOnlyNotDisposed - Eksik atma ihlallerini yalnızca özel durum olmayan program yollarında izleyin ve rapor edin. Önerilmeyen bertaraf etme desenlerinin olası sızma sorunlarına neden olabilecek kullanımlarını işaretlemeyin.
NonExceptionPaths CA2000

dispose_ownership_transfer_at_constructor

Description İzin verilebilen değerler Varsayılan değer Yapılandırılabilir kurallar
Yapıcı çağrısına aktarılan argümanlar için sahiplik aktarımı yapılandırmasını dispose işleviyle yapılandırma true veya false false CA2000

dispose_ownership_transfer_at_method_call

Description İzin verilebilen değerler Varsayılan değer Yapılandırılabilir kurallar
Yöntem çağrılarına argüman olarak iletilen nesneler için sahiplik devri ayarlarını yapılandırma true veya false false CA2000

interprocedural_analysis_kind

Description İzin verilebilen değerler Varsayılan değer Yapılandırılabilir kurallar
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 İzin verilebilen değerler Varsayılan değer Yapılandırılabilir kurallar
Yordamlar arası veri akışı analizi için en fazla yöntem çağrı zinciri uzunluğunu belirtir İşaretsiz tamsayı 3 CA1062, CA1303, CA1508, CA2000, CA2100, CA2213

max_interprocedural_lambda_or_local_function_call_chain

Description İzin verilebilen değerler Varsayılan değer Yapılandırılabilir kurallar
Yordamlar arası veri akışı analizi için analiz etmek üzere maksimum lambda veya yerel işlev çağrı zinciri uzunluğunu belirtir İşaretsiz tamsayı 3 CA1062, CA1303, CA1508, CA2000, CA2100, CA2213

points_to_analysis_kind

Description İzin verilebilen değerler Varsayılan değer Yapılandırılabilir kurallar
PointsToAnalysis gerçekleştirilip gerçekleştirilmeyeceğini belirtir None, PartialWithoutTrackingFieldsAndProperties, Complete Her kurala özgü CA1062, CA1303, CA1508, CA2000, CA2100, CA2213

copy_analysis

Description İzin verilebilen değerler Varsayılan değer Yapılandırılabilir kurallar
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 İzin verilebilen değerler Varsayılan değer Yapılandırılabilir kurallar
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