Bagikan melalui


Opsi konfigurasi aturan kualitas kode

Aturan kualitas kode memiliki opsi konfigurasi tambahan, selain hanya mengonfigurasi tingkat keparahannya. Misalnya, setiap penganalisis kualitas kode dapat dikonfigurasi untuk hanya berlaku pada bagian tertentu dari basis kode Anda. Anda menentukan opsi ini dengan menambahkan pasangan kunci-nilai ke file EditorConfig yang sama tempat Anda menentukan tingkat keparahan aturan dan preferensi editor umum.

Catatan

Artikel ini tidak menjelaskan secara detail cara mengonfigurasi tingkat keparahan aturan. Opsi .editorconfig untuk mengatur tingkat keparahan aturan memiliki awalan yang berbeda (dotnet_diagnostic) ke opsi yang dijelaskan di sini (dotnet_code_quality). Selain itu, opsi yang dijelaskan di sini berkaitan dengan aturan kualitas kode saja, sedangkan opsi tingkat keparahan juga berlaku untuk aturan gaya kode. Sebagai referensi cepat, Anda dapat mengonfigurasi tingkat keparahan aturan menggunakan sintaks opsi berikut:

dotnet_diagnostic.<rule ID>.severity = <severity value>

Namun, untuk informasi mendetail tentang cara mengonfigurasi tingkat keparahan aturan, lihat Tingkat keparahan.

Cakupan opsi

Setiap opsi penyempurnaan dapat dikonfigurasi untuk semua aturan, untuk kategori aturan (misalnya, Keamanan atau Desain), atau untuk aturan tertentu.

Semua aturan

Sintaks untuk mengonfigurasi opsi untuk semua aturan adalah sebagai berikut:

Sintaks Contoh
dotnet_code_quality.<OptionName> = <OptionValue> dotnet_code_quality.api_surface = public

Nilai untuk <OptionName> dicantumkan di bagian Opsi.

Kategori aturan

Sintaks untuk mengonfigurasi opsi bagi kategori aturan adalah sebagai berikut:

Sintaks Contoh
dotnet_code_quality.<RuleCategory>.<OptionName> = OptionValue dotnet_code_quality.Naming.api_surface = public

Tabel berikut mencantumkan nilai yang tersedia untuk <RuleCategory>.

Design
Documentation
Globalization
Interoperability

Maintainability
Naming
Performance
SingleFile

Reliability
Security
Usage

Aturan tertentu

Sintaks untuk mengonfigurasi opsi bagi aturan tertentu adalah sebagai berikut:

Sintaks Contoh
dotnet_code_quality.<RuleId>.<OptionName> = <OptionValue> dotnet_code_quality.CA1040.api_surface = public

Opsi

Bagian ini mencantumkan beberapa opsi yang tersedia. Untuk melihat daftar lengkap opsi yang tersedia, lihat Konfigurasi penganalisis.

api_surface

Deskripsi Nilai yang diizinkan Nilai default Aturan yang dapat dikonfigurasi
Bagian dari permukaan API yang akan dianalisis public (berlaku untuk public DAN protected API)
internal atau friend (berlaku untuk internal DAN private protected API)
private (berlaku untuk private API)
all (berlaku untuk semua API)

Pisahkan beberapa nilai dengan koma (,)
public CA1000 CA1002 CA1003 CA1005 CA1008 CA1010 CA1012 CA1021 CA1024 CA1027 CA1028 CA1030 CA1036 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 CA1716 CA1717 CA1720 CA1721 CA1725 CA1801 CA1802 CA1815 CA1819 CA1822 CA1859 CA2208 CA2217 CA2225 CA2226 CA2231 CA2234

exclude_async_void_methods

Deskripsi Nilai yang diizinkan Nilai default Aturan yang dapat dikonfigurasi
Apakah akan mengabaikan metode asinkron yang tidak menampilkan nilai true
false
false CA2007

Catatan

Opsi ini dinamai skip_async_void_methods dalam versi yang lebih lama.

exclude_single_letter_type_parameters

Deskripsi Nilai yang diizinkan Nilai default Aturan yang dapat dikonfigurasi
Apakah akan mengecualikan parameter jenis karakter tunggal dari aturan, misalnya, S di Collection<S> true
false
false CA1715

Catatan

Opsi ini dinamai allow_single_letter_type_parameters dalam versi yang lebih lama.

output_kind

Deskripsi Nilai yang diizinkan Nilai default Aturan yang dapat dikonfigurasi
Menentukan bahwa kode dalam proyek yang menghasilkan jenis assembly ini harus dianalisis Satu atau beberapa bidang enumerasi OutputKind

Pisahkan beberapa nilai dengan koma (,)
Semua jenis output CA2007

required_modifiers

Deskripsi Nilai yang diizinkan Nilai default Aturan yang dapat dikonfigurasi
Menentukan pengubah yang diperlukan untuk API yang harus dianalisis Satu atau beberapa nilai dari tabel pengubah yang diizinkan di bawah ini

Pisahkan beberapa nilai dengan koma (,)
Bergantung pada setiap aturan CA1802
Pengubah yang Diizinkan Ringkasan
none Tidak ada persyaratan pengubah
static atau Shared Harus dinyatakan sebagai static (Shared di Visual Basic)
const Harus dinyatakan sebagai const
readonly Harus dinyatakan sebagai readonly
abstract Harus dinyatakan sebagai abstract
virtual Harus dinyatakan sebagai virtual
override Harus dinyatakan sebagai override
sealed Harus dinyatakan sebagai sealed
extern Harus dinyatakan sebagai extern
async Harus dinyatakan sebagai async

exclude_extension_method_this_parameter

Deskripsi Nilai yang diizinkan Nilai default Aturan yang dapat dikonfigurasi
Apakah akan melompati analisis untuk parameter this metode ekstensi true
false
false CA1062

null_check_validation_methods

Deskripsi Nilai yang diizinkan Nilai default Aturan yang dapat dikonfigurasi
Nama metode validasi pemeriksaan null yang memvalidasi bahwa argumen yang diteruskan ke metode bukanlah null Format nama metode yang diizinkan (dipisahkan oleh |):
- Khusus nama metode (termasuk semua metode dengan nama, terlepas dari namespace layanan atau jenis yang berisi)
- Nama yang sepenuhnya memenuhi syarat dalam format ID dokumentasi simbol, dengan awalan M: opsional
Tidak CA1062

additional_string_formatting_methods

Deskripsi Nilai yang diizinkan Nilai default Aturan yang dapat dikonfigurasi
Nama metode pemformatan string tambahan Format nama metode yang diizinkan (dipisahkan oleh |):
- Khusus nama metode (termasuk semua metode dengan nama, terlepas dari namespace layanan atau jenis yang berisi)
- Nama yang sepenuhnya memenuhi syarat dalam format ID dokumentasi simbol, dengan awalan M: opsional
Tidak CA2241

excluded_type_names_with_derived_types

Deskripsi Nilai yang diizinkan Nilai default Aturan yang dapat dikonfigurasi
Nama jenis, sehingga jenis dan semua jenis turunannya dikecualikan untuk analisis Format nama simbol yang diizinkan (dipisahkan oleh |):
- Khusus nama jenis (termasuk semua jenis dengan nama, terlepas dari namespace layanan atau jenis yang berisi)
- Nama yang sepenuhnya memenuhi syarat dalam format ID dokumentasi simbol, dengan awalan T: opsional
Tidak CA1001 CA1054 CA1055 CA1056 CA1062 CA1068 CA1303 CA1304 CA1305 CA1508 CA2000 CA2100 CA2301 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

Deskripsi Nilai yang diizinkan Nilai default Aturan yang dapat dikonfigurasi
Nama simbol yang dikecualikan untuk analisis Format nama simbol yang diizinkan (dipisahkan oleh |):
- Khusus nama simbol (menyertakan semua simbol dengan nama, terlepas dari namespace layanan atau jenis yang berisi)
- Nama yang sepenuhnya memenuhi syarat dalam format ID dokumentasi simbol. Setiap nama simbol memerlukan awalan jenis simbol, seperti awalan M: untuk metode, awalan T: untuk jenis, dan awalan N: untuk namespace layanan.
- .ctor untuk konstruktor dan .cctor untuk konstruktor statik
Tidak CA1001 CA1054 CA1055 CA1056 CA1062 CA1068 CA1303 CA1304 CA1305 CA1508 CA2000 CA2100 CA2301 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

Deskripsi Nilai yang diizinkan Nilai default Aturan yang dapat dikonfigurasi
Nama simbol yang tidak diizinkan dalam konteks analisis Format nama simbol yang diizinkan (dipisahkan oleh |):
- Khusus nama simbol (menyertakan semua simbol dengan nama, terlepas dari namespace layanan atau jenis yang berisi)
- Nama yang sepenuhnya memenuhi syarat dalam format ID dokumentasi simbol. Setiap nama simbol memerlukan awalan jenis simbol, seperti awalan M: untuk metode, awalan T: untuk jenis, dan awalan N: untuk namespace layanan.
- .ctor untuk konstruktor dan .cctor untuk konstruktor statik
Tidak CA1031

exclude_ordefault_methods

Deskripsi Nilai yang diizinkan Nilai default Aturan yang dapat dikonfigurasi
Mengecualikan FirstOrDefault dan LastOrDefault metode dari analisis. true atau false false CA1826

ignore_internalsvisibleto

Deskripsi Nilai yang diizinkan Nilai default Aturan yang dapat dikonfigurasi
Termasuk rakitan yang ditandai dengan InternalsVisibleToAttribute dalam analisis. true atau false true CA1812 CA1852

try_determine_additional_string_formatting_methods_automatically

Deskripsi Nilai yang diizinkan Nilai default Aturan yang dapat dikonfigurasi
Opsi Boolean untuk mengaktifkan deteksi heuristik metode pemformatan string tambahan.
Metode dianggap sebagai metode pemformatan string jika memiliki string format parameter yang diikuti oleh params object[] parameter.
true atau false false CA2241

unsafe_DllImportSearchPath_bits

Deskripsi Nilai yang diizinkan Nilai default Aturan yang dapat dikonfigurasi
Mengonfigurasi nilai DllImportSearchPath mana yang tidak aman untuk analisis Nilai bilangan bulat dari System.Runtime.InteropServices.DllImportSearchPath 770 (Yaitu, AssemblyDirectory | UseDllDirectoryForDependencies | ApplicationDirectory) CA5393

exclude_aspnet_core_mvc_controllerbase

Deskripsi Nilai yang diizinkan Nilai default Aturan yang dapat dikonfigurasi
Kecualikan ASP.NET Core MVC ControllerBase saat mempertimbangkan CSRF true atau false true CA5391

dispose_analysis_kind

Deskripsi Nilai yang diizinkan Nilai default Aturan yang dapat dikonfigurasi
Menentukan jalur mana yang akan dianalisis untuk membuang pelanggaran - AllPaths - Lacak dan laporkan pelanggaran pembuangan yang hilang di semua jalur (jalur non-pengecualian dan pengecualian). Selain itu, juga bendera penggunaan pola pembuangan yang tidak direkomendasikan yang dapat menyebabkan potensi kebocoran pembuangan.
- AllPathsOnlyNotDisposed - Lacak dan laporkan pelanggaran pembuangan yang hilang di semua jalur (jalur non-pengecualian dan pengecualian). Jangan menandai penggunaan pola pembuangan yang tidak direkomendasikan yang dapat menyebabkan potensi kebocoran pembuangan.
- NonExceptionPaths - Lacak dan laporkan pelanggaran yang hilang hanya pada jalur program non-pengecualian. Selain itu, juga bendera penggunaan pola pembuangan yang tidak direkomendasikan yang dapat menyebabkan potensi kebocoran pembuangan.
- NonExceptionPathsOnlyNotDisposed - Lacak dan laporkan pelanggaran yang hilang hanya pada jalur program non-pengecualian. Jangan menandai penggunaan pola pembuangan yang tidak direkomendasikan yang dapat menyebabkan potensi kebocoran pembuangan.
NonExceptionPaths CA2000

dispose_ownership_transfer_at_constructor

Deskripsi Nilai yang diizinkan Nilai default Aturan yang dapat dikonfigurasi
Mengonfigurasi transfer kepemilikan buang untuk argumen yang diteruskan ke pemanggilan konstruktor true atau false false CA2000

dispose_ownership_transfer_at_method_call

Deskripsi Nilai yang diizinkan Nilai default Aturan yang dapat dikonfigurasi
Mengonfigurasi transfer kepemilikan buang untuk objek sekali pakai yang diteruskan sebagai argumen ke panggilan metode true atau false false CA2000

enum_values_prefix_trigger

Deskripsi Nilai yang diizinkan Nilai default Aturan yang dapat dikonfigurasi
Menentukan ambang batas untuk memicu aturan penamaan nilai enum - AnyEnumValue - Aturan dipicu jika salah satu nilai enum dimulai dengan nama jenis enum.
- AllEnumValues - Aturan dipicu jika semua nilai enum dimulai dengan nama jenis enum.
- Heuristic - Aturan dipicu menggunakan heuristik FxCop default (yaitu, ketika setidaknya 75% dari nilai enum dimulai dengan nama jenis enum).
Heuristic CA1712

exclude_indirect_base_types

Deskripsi Nilai yang diizinkan Nilai default Aturan yang dapat dikonfigurasi
Mengecualikan jenis dasar tidak langsung true atau false true CA1710

additional_required_suffixes

Deskripsi Nilai yang diizinkan Nilai default Aturan yang dapat dikonfigurasi
Menentukan akhiran tambahan yang diperlukan Daftar nama tipe (dipisahkan oleh |) dengan akhiran yang diperlukan (dipisahkan oleh ->). Format nama jenis yang diizinkan:
- Ketik nama saja (menyertakan semua jenis dengan nama, terlepas dari jenis atau namespace layanan yang berisi).
- Nama yang sepenuhnya memenuhi syarat dalam format ID dokumentasi simbol dengan awalan opsional T: .
Tidak CA1710

additional_required_generic_interfaces

Deskripsi Nilai yang diizinkan Nilai default Aturan yang dapat dikonfigurasi
Menentukan antarmuka generik tambahan yang diperlukan Daftar nama antarmuka (dipisahkan oleh |) dengan antarmuka generik yang diperlukan sepenuhnya memenuhi syarat (dipisahkan oleh ->). Format antarmuka yang diizinkan:
- Nama antarmuka saja (mencakup semua antarmuka dengan nama, terlepas dari jenis atau namespace layanan yang berisi).
- Nama yang sepenuhnya memenuhi syarat dalam format ID dokumentasi simbol dengan awalan opsional T: .
Tidak CA1010

Contoh:

Nilai Opsi Ringkasan
dotnet_code_quality.CA1010.additional_required_generic_interfaces = ISomething->System.Collections.Generic.IEnumerable`1 Semua jenis yang diterapkan ISomething terlepas dari namespace layanannya diharapkan juga System.Collections.Generic.IEnumerable\`1menerapkan .
dotnet_code_quality.CA1010.additional_required_generic_interfaces = T:System.Collections.IDictionary->T:System.Collections.Generic.IDictionary`2 Semua jenis penerapan System.Collections.IDictionary diharapkan juga System.Collections.Generic.IDictionary`2menerapkan .

additional_inheritance_excluded_symbol_names

Deskripsi Nilai yang diizinkan Nilai default Aturan yang dapat dikonfigurasi
Menentukan jenis atau namespace yang akan dikecualikan dari pohon hierarki pewarisan Format nama jenis yang diizinkan:
- Jenis atau nama namespace layanan (menyertakan semua jenis dengan nama, terlepas dari jenis atau namespace yang berisi, dan semua jenis yang namespacenya berisi nama).
- Ketik atau nama namespace yang diakhir dengan simbol kartubebas (termasuk semua jenis yang namanya dimulai dengan nama yang diberikan, terlepas dari jenis atau namespace yang berisi, dan semua jenis yang namespacenya berisi nama).
- Nama yang sepenuhnya memenuhi syarat dalam format ID dokumentasi simbol dengan awalan opsional T: untuk jenis atau N: awalan untuk namespace.
- Jenis atau nama namespace layanan yang sepenuhnya memenuhi syarat dengan awalan opsional T: untuk jenis atau N: awalan untuk namespace layanan dan diakhiri dengan simbol kartubebas (termasuk semua jenis yang namanya sepenuhnya memenuhi syarat dimulai dengan nama jenis yang diberikan, atau semua jenis yang namanya sepenuhnya memenuhi syarat dimulai dengan nama namespace layanan yang diberikan).
N:System.* (Nilai ini selalu ditambahkan secara otomatis ke nilai yang disediakan) CA1501

analyzed_symbol_kinds

Deskripsi Nilai yang diizinkan Nilai default Aturan yang dapat dikonfigurasi
Menentukan jenis simbol yang akan dianalisis Satu atau beberapa bidang sebagai daftar yang dipisahkan SymbolKind koma. Namespace, NamedType, Method, Property, Event, Parameter CA1716

use_naming_heuristic

Deskripsi Nilai yang diizinkan Nilai default Aturan yang dapat dikonfigurasi
Mengonfigurasi apakah parameter atau nama properti yang berisi Text, , Messageatau Caption memicu aturan ini true atau false false CA1303

additional_use_results_methods

Deskripsi Nilai yang diizinkan Nilai default Aturan yang dapat dikonfigurasi
Menentukan API kustom tambahan yang hasilnya harus digunakan Nama metode tambahan (dipisahkan oleh |). Format nama metode yang diizinkan:
- Nama metode saja (mencakup semua metode dengan nama, terlepas dari jenis atau namespace yang berisi).
- Nama yang sepenuhnya memenuhi syarat dalam format ID dokumentasi simbol dengan awalan opsional M: .
Tidak CA1806

allowed_suffixes

Deskripsi Nilai yang diizinkan Nilai default Aturan yang dapat dikonfigurasi
Menentukan akhiran yang diperbolehkan Daftar (dipisahkan oleh |) akhiran yang diizinkan. Tidak CA1711

enable_platform_analyzer_on_pre_net5_target

Deskripsi Nilai yang diizinkan Nilai default Aturan yang dapat dikonfigurasi
Menentukan apakah akan mengaktifkan analisis untuk TFM sebelum .NET 5 true atau false false CA1416

exclude_structs

Deskripsi Nilai yang diizinkan Nilai default Aturan yang dapat dikonfigurasi
Menentukan apakah akan mengecualikan struktur dari analisis true atau false false CA1051

additional_enum_none_names

Deskripsi Nilai yang diizinkan Nilai default Aturan yang dapat dikonfigurasi
Menentukan nama tambahan yang diizinkan untuk bidang enumerasi nilai nol Daftar nama tambahan (dipisahkan oleh |). Tidak CA1008

enumeration_methods

Deskripsi Nilai yang diizinkan Nilai default Aturan yang dapat dikonfigurasi
Menentukan metode kustom tambahan yang menghitung IEnumerable Nama metode tambahan yang sepenuhnya memenuhi syarat (dipisahkan oleh |). Tidak CA1851

linq_chain_methods

Deskripsi Nilai yang diizinkan Nilai default Aturan yang dapat dikonfigurasi
Menentukan metode rantai LINQ tambahan yang disesuaikan (yaitu, metode mengambil IEnumerable argumen dan mengembalikan instans baru IEnumerable ) Nama metode tambahan yang sepenuhnya memenuhi syarat (dipisahkan oleh |). Tidak CA1851

assume_method_enumerates_parameters

Deskripsi Nilai yang diizinkan Nilai default Aturan yang dapat dikonfigurasi
Menentukan apakah akan mengasumsikan bahwa metode yang disesuaikan menghitung parameternya IEnumerable true atau false false CA1851