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.

Not

Bu makalede kuralın önem derecesini yapılandırma işlemi ayrıntılı olarak anlatılmaz. Bir kuralın önem derecesini ayarlamaya ilişkin .editorconfig seçeneğinin, burada açıklanan seçeneklere () farklı bir ön eki (dotnet_code_qualitydotnet_diagnostic) 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:

Sözdizimi Örnek
dotnet_code_quality.<OptionName> = <OptionValue> 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:

Sözdizimi Örnek
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

Belirli bir kural

Belirli bir kural için bir seçeneği yapılandırma söz dizimi aşağıdaki gibidir:

Sözdizimi Örnek
dotnet_code_quality.<RuleId>.<OptionName> = <OptionValue> dotnet_code_quality.CA1040.api_surface = public

Seçenekler

Bu bölümde kullanılabilir seçeneklerden bazıları listelenmiştir. Kullanılabilir seçeneklerin tam listesini görmek için bkz . Çözümleyici yapılandırması.

api_surface

Açıklama İzin verilebilen değerler Default value Yapılandırılabilir kurallar
API yüzeyinin analiz etmek için hangi bölümü public(ve protected API'leri için public geçerlidir)
internalveya friend (ve private protected API'leri için internal 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 CA1000 CA1002 CA1003 CA1005 CA1008 CA1010 CA1012 CA1021 CA1024 CA1027 CA1028 CA1030 CA1036 CA1040 CA1041 CA1043 CA1044 CA1045 CA1046 CA1047 CA1051 CA1052 CA1054 CA1055 CA1056 CA1058 CA1062 CA1063 CA1068 CA1070 CA1700 CA1707 CA1708 CA1710 CA1711 CA1714 CA1715 CA1716 CA1717 CA1720 CA1721 CA1725 CA1801 CA1802 CA1802 CA1815 CA1819 CA1822 CA1859 CA2208 CA2217 CA2225 CA2226 CA2231 CA2234

exclude_async_void_methods

Açıklama İzin verilebilen değerler Default value Yapılandırılabilir kurallar
Değer döndürmeyen zaman uyumsuz yöntemlerin yoksayılıp yoksayılmayacağı true
false
false CA2007

Not

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

exclude_single_letter_type_parameters

Açıklama İzin verilebilen değerler Default value 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

Not

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

output_kind

Açıklama İzin verilebilen değerler Default value Yapılandırılabilir kurallar
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 CA2007

required_modifiers

Açıklama İzin verilebilen değerler Default value 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 Özet
none Değiştirici gereksinimi yok
static veya Shared (Shared Visual Basic'te) olarak static 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

Açıklama İzin verilebilen değerler Default value Yapılandırılabilir kurallar
Uzantı yöntemlerinin this parametresi için analizin atlanıp atlanmayacağı true
false
false CA1062

null_check_validation_methods

Açıklama İzin verilebilen değerler Default value Yapılandırılabilir kurallar
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
Hiçbiri CA1062

additional_string_formatting_methods

Açıklama İzin verilebilen değerler Default value 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
Hiçbiri CA2241

excluded_type_names_with_derived_types

Açıklama İzin verilebilen değerler Default value Yapılandırılabilir kurallar
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
Hiçbiri CA1001 CA1054 CA1055 CA1056 CA1062 CA1068 CA1303 CA1304 CA1305 CA1508 CA2000 CA2100 CA2301 CA2302 CA2311 CA2312 CA2321 CA2322 CA2327 CA2328 CA2329 CA2330 CA3001 CA3002 CA3003 CA3004 CA3005 CA3006 CA3007 CA3008 CA3009 CA3010 CA3011 CA3012 CA5361 CA5376 CA5377 CA5378 CA5380 CA5381 CA5382 CA5383 CA5384 CA5387 CA5388 CA5389 CA5390 CA5399 CA5400

excluded_symbol_names

Açıklama İzin verilebilen değerler Default value 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)
- Simgenin belge kimliği biçiminde tam adlar. Her simge adı, yöntemler T: için ön ek, türler için ön ek ve N: ad alanları için ön ek gibi M: bir sembol türü ön eki gerektirir.
- .ctor oluşturucular ve .cctor statik oluşturucular için
Hiçbiri CA1001 CA1054 CA1055 CA1056 CA1062 CA1068 CA1303 CA1304 CA1305 CA1508 CA2000 CA2100 CA2301 CA2302 CA2311 CA2312 CA2321 CA2322 CA2327 CA2328 CA2329 CA2330 CA3001 CA3002 CA3003 CA3004 CA3005 CA3006 CA3007 CA3008 CA3009 CA3010 CA3011 CA3012 CA5361 CA5376 CA5377 CA5378 CA5380 CA5381 CA5382 CA5383 CA5384 CA5387 CA5388 CA5389 CA5390 CA5399 CA5400

disallowed_symbol_names

Açıklama İzin verilebilen değerler Default value 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)
- Simgenin belge kimliği biçiminde tam adlar. Her simge adı, yöntemler T: için ön ek, türler için ön ek ve N: ad alanları için ön ek gibi M: bir sembol türü ön eki gerektirir.
- .ctor oluşturucular ve .cctor statik oluşturucular için
Hiçbiri CA1031

exclude_ordefault_methods

Açıklama İzin verilebilen değerler Default value Yapılandırılabilir kurallar
Ve LastOrDefault yöntemlerini analizden dışlarFirstOrDefault. true veya false false CA1826

ignore_internalsvisibleto

Açıklama İzin verilebilen değerler Default value Yapılandırılabilir kurallar
Analizde ile InternalsVisibleToAttribute işaretlenmiş derlemeleri içerir. true veya false true CA1812 CA1852

try_determine_additional_string_formatting_methods_automatically

Açıklama İzin verilebilen değerler Default value 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öntemi, bir parametresi ve ardından params object[] bir parametresi varsa, dize string format biçimlendirme yöntemi olarak kabul edilir.
true veya false false CA2241

unsafe_DllImportSearchPath_bits

Açıklama İzin verilebilen değerler Default value 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

Açıklama İzin verilebilen değerler Default value 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

dispose_analysis_kind

Açıklama İzin verilebilen değerler Default value Yapılandırılabilir kurallar
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

Açıklama İzin verilebilen değerler Default value Yapılandırılabilir kurallar
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

Açıklama İzin verilebilen değerler Default value Yapılandırılabilir kurallar
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

enum_values_prefix_trigger

Açıklama İzin verilebilen değerler Default value Yapılandırılabilir kurallar
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

Açıklama İzin verilebilen değerler Default value Yapılandırılabilir kurallar
Dolaylı temel türleri dışla true veya false true CA1710

additional_required_suffixes

Açıklama İzin verilebilen değerler Default value Yapılandırılabilir kurallar
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.
Hiçbiri CA1710

additional_required_generic_interfaces

Açıklama İzin verilebilen değerler Default value Yapılandırılabilir kurallar
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.
Hiçbiri CA1010

Örnekler:

Seçenek Değeri Özet
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

Açıklama İzin verilebilen değerler Default value 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).
- Ad alanları için türler veya N: ön ek için isteğe bağlı T: ö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

Açıklama İzin verilebilen değerler Default value Yapılandırılabilir kurallar
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

Açıklama İzin verilebilen değerler Default value Yapılandırılabilir kurallar
Parametrelerin mi yoksa , Messageiçeren özellik adlarının mı Caption yoksa bu kuralın tetiklenip tetiklenmeyeceğini Textyapılandırılır true veya false false CA1303

additional_use_results_methods

Açıklama İzin verilebilen değerler Default value 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.
Hiçbiri CA1806

allowed_suffixes

Açıklama İzin verilebilen değerler Default value Yapılandırılabilir kurallar
İzin verilebilen sonekleri belirtir İzin verilen soneklerin listesi (|ile ayrılmış). Hiçbiri CA1711

enable_platform_analyzer_on_pre_net5_target

Açıklama İzin verilebilen değerler Default value 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

Açıklama İzin verilebilen değerler Default value 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

Açıklama İzin verilebilen değerler Default value 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ış). Hiçbiri CA1008

enumeration_methods

Açıklama İzin verilebilen değerler Default value Yapılandırılabilir kurallar
IEnumerable'ı numaralandıran ek özel yöntemleri belirtir Ek yöntemlerin tam adları (|ile ayrılmış). Hiçbiri CA1851

linq_chain_methods

Açıklama İzin verilebilen değerler Default value Yapılandırılabilir kurallar
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ış). Hiçbiri CA1851

assume_method_enumerates_parameters

Açıklama İzin verilebilen değerler Default value Yapılandırılabilir kurallar
Özelleştirilmiş yöntemlerin parametrelerini numaralandırıp numaralandırmayacağını IEnumerable belirtir true veya false false CA1851