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
- 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
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 |
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per