Opciones de configuración de reglas de calidad de código
Las reglas de calidad de código tienen opciones de configuración adicionales, además de simplementeconfigurar su gravedad. Por ejemplo, cada analizador de calidad de código puede configurarse para que solo se aplique a partes específicas de su código base. Estas opciones se especifican agregando pares clave-valor al mismo archivo EditorConfig en el que se especifican los niveles de gravedad de las reglas y las preferencias generales del editor.
Nota:
En este artículo no se detalla cómo configurar la gravedad de una regla. La opción .editorconfig para establecer la gravedad de una regla tiene un prefijo diferente (dotnet_diagnostic
) en las opciones descritas aquí (dotnet_code_quality
). Además, las opciones que se describen aquí solo pertenecen a las reglas de calidad del código, mientras que la opción de gravedad también se aplica a las reglas de estilo de código. Como referencia rápida, puede configurar la gravedad de una regla mediante la siguiente sintaxis de opción:
dotnet_diagnostic.<rule ID>.severity = <severity value>
Sin embargo, para obtener información detallada sobre cómo configurar la gravedad de la regla, consulte Nivel de gravedad.
Ámbitos de opción
Cada opción de mejora se puede configurar para todas las reglas, para una categoría de reglas (por ejemplo, seguridad o diseño) o para una regla específica.
Todas las reglas
La sintaxis para configurar una opción para todas las reglas es la siguiente:
Sintaxis | Ejemplo |
---|---|
dotnet_code_quality.<OptionName> = <OptionValue> | dotnet_code_quality.api_surface = public |
Los valores de <OptionName>
se enumeran en Opciones.
Categoría de reglas
La sintaxis para configurar una opción para una categoría de reglas es la siguiente:
Sintaxis | Ejemplo |
---|---|
dotnet_code_quality.<RuleCategory>.<OptionName> = OptionValue | dotnet_code_quality.Naming.api_surface = public |
En la tabla siguiente se enumeran los valores disponibles para <RuleCategory>
.
Design
Documentation
Globalization
Interoperability
Maintainability
Naming
Performance
SingleFile
Reliability
Security
Usage
Regla específica
La sintaxis para configurar una opción para una regla específica es la siguiente:
Sintaxis | Ejemplo |
---|---|
dotnet_code_quality.<RuleId>.<OptionName> = <OptionValue> | dotnet_code_quality.CA1040.api_surface = public |
Opciones
En esta sección se enumeran algunas de las opciones disponibles. Para ver la lista completa de las opciones disponibles, vea Configuración del analizador.
- 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
Descripción | Valores permitidos | Valor predeterminado | Reglas configurables |
---|---|---|---|
Qué parte de la superficie de API se va a analizar | public (se aplica a API de public y protected )internal o friend (se aplica a API de internal y private protected )private (se aplica a API de private )all (se aplica a todas las API)Separar varios valores con una coma comma (,) |
public |
CA1000CA1002CA1003CA1005CA1008CA1010CA1012CA1021CA1024CA1027CA1028CA1030CA1036CA1040CA1041CA1043CA1044CA1045CA1046CA1047CA1051CA1052CA1054CA1055CA1056CA1058CA1062CA1063CA1068CA1070CA1700CA1707CA1708CA1710CA1711CA1714CA1715CA1716CA1717CA1720CA1721CA1725CA1801CA1802CA1815CA1819CA1822CA1859CA2208CA2217CA2225CA2226CA2231CA2234 |
exclude_async_void_methods
Descripción | Valores permitidos | Valor predeterminado | Reglas configurables |
---|---|---|---|
Si se omiten los métodos asincrónicos que no devuelven un valor | true false |
false |
CA2007 |
Nota:
Esta opción se denominaba skip_async_void_methods
en una versión anterior.
exclude_single_letter_type_parameters
Descripción | Valores permitidos | Valor predeterminado | Reglas configurables |
---|---|---|---|
Si se van a excluir de la regla los parámetros de tipo de un solo carácter, por ejemplo, S en Collection<S> |
true false |
false |
CA1715 |
Nota:
Esta opción se denominaba allow_single_letter_type_parameters
en una versión anterior.
output_kind
Descripción | Valores permitidos | Valor predeterminado | Reglas configurables |
---|---|---|---|
Especifica que debe analizarse el código de un proyecto que genera este tipo de ensamblado. | Uno o varios campos de la enumeración OutputKind Separar varios valores con una coma comma (,) |
Todos los tipos de salida | CA2007 |
required_modifiers
Descripción | Valores permitidos | Valor predeterminado | Reglas configurables |
---|---|---|---|
Especifica los modificadores necesarios para las API que se deben analizar | Uno o varios valores de la siguiente tabla de modificadores permitidos Separar varios valores con una coma comma (,) |
Depende de cada regla | CA1802 |
Modificador permitido | Resumen |
---|---|
none |
Ningún requisito de modificador |
static o Shared |
Se debe declarar como static (Shared en Visual Basic) |
const |
Se debe declarar como const |
readonly |
Se debe declarar como readonly |
abstract |
Se debe declarar como abstract |
virtual |
Se debe declarar como virtual |
override |
Se debe declarar como override |
sealed |
Se debe declarar como sealed |
extern |
Se debe declarar como extern |
async |
Se debe declarar como async |
exclude_extension_method_this_parameter
Descripción | Valores permitidos | Valor predeterminado | Reglas configurables |
---|---|---|---|
Si se omitirá el análisis del parámetro this de los métodos de extensión |
true false |
false |
CA1062 |
null_check_validation_methods
Descripción | Valores permitidos | Valor predeterminado | Reglas configurables |
---|---|---|---|
Los nombres de métodos de validación de comprobación de valores NULL que validan que los argumentos pasados al método no son NULL | Formatos de nombre de método permitidos (separados por |): - Solo nombre de método (incluye todos los métodos con el nombre, con independencia del tipo contenedor o el espacio de nombres). - Nombres completos en el formato de identificador de documentación del símbolo, con un prefijo M: opcional. |
None | CA1062 |
additional_string_formatting_methods
Descripción | Valores permitidos | Valor predeterminado | Reglas configurables |
---|---|---|---|
Nombres de métodos de formato de cadena adicionales | Formatos de nombre de método permitidos (separados por |): - Solo nombre de método (incluye todos los métodos con el nombre, con independencia del tipo contenedor o el espacio de nombres). - Nombres completos en el formato de identificador de documentación del símbolo, con un prefijo M: opcional. |
Ninguno | CA2241 |
excluded_type_names_with_derived_types
Descripción | Valores permitidos | Valor predeterminado | Reglas configurables |
---|---|---|---|
Nombres de tipos, de modo que el tipo y todos sus tipos derivados se excluyen del análisis | Formatos de nombre de símbolo permitidos (separados por |): - Solo nombre de tipo (incluye todos los tipos con el nombre, con independencia del tipo contenedor o el espacio de nombres). - Nombres completos en el formato de identificador de documentación del símbolo, con un prefijo T: opcional. |
None | CA1001CA1054CA1055CA1056CA1062CA1068CA1303CA1304CA1305CA1508CA2000CA2100CA2301CA2302CA2311CA2312CA2321CA2322CA2327CA2328CA2329CA2330CA3001CA3002CA3003CA3004CA3005CA3006CA3007CA3008CA3009CA3010CA3011CA3012CA5361CA5376CA5377CA5378CA5380CA5381CA5382CA5383CA5384CA5387CA5388CA5389CA5390CA5399CA5400 |
excluded_symbol_names
Descripción | Valores permitidos | Valor predeterminado | Reglas configurables |
---|---|---|---|
Nombres de los símbolos que se excluyen del análisis | Formatos de nombre de símbolo permitidos (separados por |): - Solo nombre de símbolo (incluye todos los símbolos con el nombre, con independencia del tipo contenedor o el espacio de nombres). - Nombres completos en el formato de id. de documentación del símbolo. Cada nombre de símbolo necesita un prefijo de tipo símbolo, como el prefijo M: para los métodos, el prefijo T: para los tipos y el prefijo N: para los espacios de nombres.- .ctor para los constructores y .cctor para los constructores estáticos. |
None | CA1001CA1054CA1055CA1056CA1062CA1068CA1303CA1304CA1305CA1508CA2000CA2100CA2301CA2302CA2311CA2312CA2321CA2322CA2327CA2328CA2329CA2330CA3001CA3002CA3003CA3004CA3005CA3006CA3007CA3008CA3009CA3010CA3011CA3012CA5361CA5376CA5377CA5378CA5380CA5381CA5382CA5383CA5384CA5387CA5388CA5389CA5390CA5399CA5400 |
disallowed_symbol_names
Descripción | Valores permitidos | Valor predeterminado | Reglas configurables |
---|---|---|---|
Nombres de los símbolos que no se permiten en el contexto del análisis | Formatos de nombre de símbolo permitidos (separados por |): - Solo nombre de símbolo (incluye todos los símbolos con el nombre, con independencia del tipo contenedor o el espacio de nombres). - Nombres completos en el formato de id. de documentación del símbolo. Cada nombre de símbolo necesita un prefijo de tipo símbolo, como el prefijo M: para los métodos, el prefijo T: para los tipos y el prefijo N: para los espacios de nombres.- .ctor para los constructores y .cctor para los constructores estáticos. |
None | CA1031 |
exclude_ordefault_methods
Descripción | Valores permitidos | Valor predeterminado | Reglas configurables |
---|---|---|---|
Excluye los métodos FirstOrDefault y LastOrDefault del análisis. |
true o false |
false |
CA1826 |
ignore_internalsvisibleto
Descripción | Valores permitidos | Valor predeterminado | Reglas configurables |
---|---|---|---|
Incluye ensamblados marcados con InternalsVisibleToAttribute en el análisis. | true o false |
true |
CA1812CA1852 |
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de