Opzioni di configurazione delle regole di qualità del codice

Le regole di qualità del codice dispongono di opzioni di configurazione aggiuntive, oltre alla semplice configurazione dei loro livelli di gravità. Ad esempio, ogni analizzatore della qualità del codice può essere configurato per l'applicazione solo a parti specifiche della codebase. È possibile specificare queste opzioni aggiungendo coppie chiave-valore allo stesso file EditorConfig in cui si specificano i livelli di gravità delle regole e le preferenze generali dell'editor.

Nota

Nel presente articolo non viene illustrato in dettaglio come configurare il livello di gravità di una regola. L'opzione .editorconfig per impostare il livello di gravità di una regola ha un prefisso diverso (dotnet_diagnostic) per le opzioni descritte qui (dotnet_code_quality). Inoltre, le opzioni descritte di seguito riguardano solo le regole di qualità del codice, mentre l'opzione del livello di gravità si applica anche alle regole di stile del codice. Come riferimento rapido, è possibile configurare il livello di gravità di una regola usando la seguente sintassi di opzione:

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

Tuttavia, per ricevere informazioni dettagliate sulla configurazione del livello di gravità delle regole, vedere la sezione Livello di gravità.

Ambiti di opzione

Ogni opzione di affinamento può essere configurata per tutte le regole, per una categoria di regole (ad esempio, Sicurezza o Progettazione) o per una regola specifica.

Tutte le regole

La sintassi per la configurazione di un'opzione per tutte le regole è la seguente:

Sintassi Esempio
dotnet_code_quality.<OptionName> = <OptionValue> dotnet_code_quality.api_surface = public

I valori per <OptionName> sono elencati in Opzioni.

Categoria di regole

La sintassi per la configurazione di un'opzione per una categoria di regole è la seguente:

Sintassi Esempio
dotnet_code_quality.<RuleCategory>.<OptionName> = OptionValue dotnet_code_quality.Naming.api_surface = public

Nella tabella seguente vengono illustrati i modelli disponibili per <RuleCategory>.

Design
Documentation
Globalization
Interoperability

Maintainability
Naming
Performance
SingleFile

Reliability
Security
Usage

Regola specifica

La sintassi per la configurazione di un'opzione per una regola specifica è la seguente:

Sintassi Esempio
dotnet_code_quality.<RuleId>.<OptionName> = <OptionValue> dotnet_code_quality.CA1040.api_surface = public

Opzioni

In questa sezione sono elencate alcune delle opzioni disponibili. Per visualizzare l'elenco completo delle opzioni disponibili, vedere Configurazione dell'analizzatore.

api_surface

Descrizione Valori consentiti Valore predefinito Regole configurabili
Quale parte della superficie dell'API analizzare public (si applica alle API public e protected)
internal o friend (si applica alle API internal e private protected)
private (si applica alle API private)
all (si applica a tutte le API)

Se si specificano più valori, separarli con virgole (,).
public CA1000CA1002CA1003CA1005CA1008CA1010CA1012CA1021CA1024CA1027CA1028CA1030CA1036CA1040CA1041CA1043CA1044CA1045CA1046CA1047CA1051CA1052CA1054CA1055CA1056CA1058CA1062CA1063CA1068CA1070CA1700CA1707CA1708CA1710CA1711CA1714CA1715CA1716CA1717CA1720CA1721CA1725CA1801CA1802CA1815CA1819CA1822CA1859CA2208CA2217CA2225CA2226CA2231CA2234

exclude_async_void_methods

Descrizione Valori consentiti Valore predefinito Regole configurabili
Indica se ignorare i metodi asincroni che non restituiscono valori true
false
false CA2007

Nota

Questa opzione è stata denominata skip_async_void_methods in una versione precedente.

exclude_single_letter_type_parameters

Descrizione Valori consentiti Valore predefinito Regole configurabili
Indica se escludere parametri di tipo carattere singolo dalla regola, ad esempio S in Collection<S> true
false
false CA1715

Nota

Questa opzione è stata denominata allow_single_letter_type_parameters in una versione precedente.

output_kind

Descrizione Valori consentiti Valore predefinito Regole configurabili
Specifica che il codice in un progetto che genera questo tipo di assembly deve essere analizzato Uno o più campi dell'enumerazione OutputKind

Se si specificano più valori, separarli con virgole (,).
Tutti i tipi di output CA2007

required_modifiers

Descrizione Valori consentiti Valore predefinito Regole configurabili
Specifica i modificatori necessari per le API da analizzare Uno o più valori dalla tabella dei modificatori consentiti riportata di seguito

Se si specificano più valori, separarli con virgole (,).
Dipende da ogni regola CA1802
Modificatore consentito Riepilogo
none Nessun requisito di modificatore
static oppure Shared Deve essere dichiarato come static (Shared in Visual Basic)
const Deve essere dichiarato come const
readonly Deve essere dichiarato come readonly
abstract Deve essere dichiarato come abstract
virtual Deve essere dichiarato come virtual
override Deve essere dichiarato come override
sealed Deve essere dichiarato come sealed
extern Deve essere dichiarato come extern
async Deve essere dichiarato come async

exclude_extension_method_this_parameter

Descrizione Valori consentiti Valore predefinito Regole configurabili
Indica se ignorare l'analisi per il parametro this dei metodi di estensione true
false
false CA1062

null_check_validation_methods

Descrizione Valori consentiti Valore predefinito Regole configurabili
Nomi dei metodi di convalida null-check che convalidano che gli argomenti passati al metodo sono diversi da null Formati dei nomi dei metodi consentiti (separati dal carattere |):
- Solo nome metodo (include tutti i metodi con il nome, indipendentemente dal tipo che lo contiene o dallo spazio dei nomi)
- Nomi completi nel formato ID della documentazione del simbolo, con un prefisso facoltativo M:
None CA1062

additional_string_formatting_methods

Descrizione Valori consentiti Valore predefinito Regole configurabili
Nomi di metodi aggiuntivi di formattazione delle stringhe Formati dei nomi dei metodi consentiti (separati dal carattere |):
- Solo nome metodo (include tutti i metodi con il nome, indipendentemente dal tipo che li contiene o dallo spazio dei nomi)
- Nomi completi nel formato ID della documentazione del simbolo, con un prefisso facoltativo M:
None CA2241

excluded_type_names_with_derived_types

Descrizione Valori consentiti Valore predefinito Regole configurabili
Nomi di tipi, in modo che il tipo e tutti i relativi tipi derivati vengano esclusi dall'analisi Formati dei nomi dei metodi consentiti (separati dal carattere |):
- Solo nome metodo (include tutti i tipi con il nome, indipendentemente dal tipo che li contiene o dallo spazio dei nomi)
- Nomi completi nel formato ID della documentazione del simbolo, con un prefisso facoltativo T:
None CA1001CA1054CA1055CA1056CA1062CA1068CA1303CA1304CA1305CA1508CA2000CA2100CA2301CA2302CA2311CA2312CA2321CA2322CA2327CA2328CA2329CA2330CA3001CA3002CA3003CA3004CA3005CA3006CA3007CA3008CA3009CA3010CA3011CA3012CA5361CA5376CA5377CA5378CA5380CA5381CA5382CA5383CA5384CA5387CA5388CA5389CA5390CA5399CA5400

excluded_symbol_names

Descrizione Valori consentiti Valore predefinito Regole configurabili
Nomi di simboli esclusi dall'analisi Formati dei nomi dei metodi consentiti (separati dal carattere |):
- Solo nome metodo (include tutti i simboli con il nome, indipendentemente dal tipo che li contiene o dallo spazio dei nomi)
- Nomi completi nel formato ID della documentazione del simbolo. Ogni nome di simbolo richiede un prefisso del tipo di simbolo, come il prefisso M: per i metodi, il prefisso T: per i tipi e il prefisso N: per gli spazi dei nomi.
- .ctor per costruttori e .cctor per costruttori statici
None CA1001CA1054CA1055CA1056CA1062CA1068CA1303CA1304CA1305CA1508CA2000CA2100CA2301CA2302CA2311CA2312CA2321CA2322CA2327CA2328CA2329CA2330CA3001CA3002CA3003CA3004CA3005CA3006CA3007CA3008CA3009CA3010CA3011CA3012CA5361CA5376CA5377CA5378CA5380CA5381CA5382CA5383CA5384CA5387CA5388CA5389CA5390CA5399CA5400

disallowed_symbol_names

Descrizione Valori consentiti Valore predefinito Regole configurabili
Nomi di simboli non consentiti nel contesto dell'analisi Formati dei nomi dei metodi consentiti (separati dal carattere |):
- Solo nome metodo (include tutti i simboli con il nome, indipendentemente dal tipo che li contiene o dallo spazio dei nomi)
- Nomi completi nel formato ID della documentazione del simbolo. Ogni nome di simbolo richiede un prefisso del tipo di simbolo, come il prefisso M: per i metodi, il prefisso T: per i tipi e il prefisso N: per gli spazi dei nomi.
- .ctor per costruttori e .cctor per costruttori statici
None CA1031

exclude_ordefault_methods

Descrizione Valori consentiti Valore predefinito Regole configurabili
Esclude i metodi FirstOrDefault e LastOrDefault dall'analisi. true oppure false false CA1826

ignore_internalsvisibleto

Descrizione Valori consentiti Valore predefinito Regole configurabili
Include gli assembly contrassegnati con InternalsVisibleToAttribute nell'analisi. true oppure false true CA1812CA1852