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_quality
dotnet_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
- 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
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)internal veya 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, S Collection<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\`1 beklenir. |
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`2 beklenir. |
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 , Message içeren özellik adlarının mı Caption yoksa bu kuralın tetiklenip tetiklenmeyeceğini Text yapı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 |