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.

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

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ğı 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 Allowable values Default value Configurable rules
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 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ğı true
false
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:

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