Estado de la migración de reglas de FxCop

Si anteriormente usó el análisis de código estático en Visual Studio, es posible que se pregunte cuál de esas reglas está disponible en la implementación actual como analizadores de .NET. En esta página se enumeran las reglas que se han migrado. Consulte Reglas no migradas en referencia a aquellas que no se han migrado y si existen planes para migrarlas.

Reglas migradas

La página de documentación generada automáticamente en el repositorio roslyn-analyzers tiene la lista más actualizada de reglas que se han migrado a analizadores de Roslyn. Esa página también contiene información adicional, por ejemplo, si la regla está habilitada de forma predeterminada y si tiene una corrección de código asociada. (Las correcciones de código son correcciones de un solo clic disponibles en el menú del icono de una bombilla en Visual Studio).

En la fecha que figura en esta página, la lista de reglas de FxCop que se han migrado a analizadores de .NET incluye:

Id. de regla Título
CA1000 No declarar miembros estáticos en tipos genéricos
CA1001 Los tipos que poseen campos descartables deben ser descartables
CA1002 No exponer listas genéricas
CA1003 Utilizar instancias genéricas de controlador de eventos
CA1005 Evitar los parámetros excesivos en tipos genéricos
CA1008 Las enumeraciones deben tener un valor igual a cero
CA1010 Las colecciones deben implementar la interfaz genérica
CA1012 Los tipos abstractos no deberían tener constructores
CA1014 Marcar los ensamblados con CLSCompliant
CA1016 Marcar los ensamblados con la versión de ensamblado
CA1017 Marcar los ensamblados con ComVisible
CA1018 Marcar atributos con AttributeUsageAttribute
CA1019 Definir descriptores de acceso para los argumentos de atributo
CA1021 Evitar los parámetros out
CA1024 Utilizar las propiedades donde corresponda
CA1027 Marcar enumeraciones con FlagsAttribute
CA1028 El almacenamiento de la enumeración debe ser de tipo Int32
CA1030 Utilizar eventos cuando sea apropiado
CA1031 No capturar los tipos de excepción general
CA1032 Implementar constructores de excepción estándar
CA1033 Los tipos secundarios deben poder llamar a los métodos de interfaz
CA1034 Los tipos anidados no deben ser visibles
CA1036 Invalidar métodos en tipos comparables
CA1040 Evitar las interfaces vacías
CA1041 Proporcionar un mensaje ObsoleteAttribute
CA1043 Utilizar un argumento integral o de cadena en indizadores
CA1044 Las propiedades no deben ser de solo escritura
CA1045 No pasar tipos por referencia
CA1046 No sobrecargar el operador de igualdad en los tipos de referencia
CA1047 No declarar miembros protegidos en tipos sellados
CA1050 Declarar tipos en espacios de nombres
CA1051 No declarar campos de instancia visibles
CA1052 Los tipos de contenedor estáticos deben ser Static o NotInheritable
CA1053 Los tipos de contenedor estáticos no deben tener constructores (CA1053 forma parte de CA1052 en analizadores de .NET)
CA1054 Los parámetros de URI no deben ser cadenas
CA1055 Los valores devueltos URI no deben ser cadenas
CA1056 Las propiedades URI no deben ser cadenas
CA1058 Los tipos no deben ampliar ciertos tipos base
CA1060 Mover elementos PInvoke a clases de métodos nativos
CA1061 No ocultar métodos de clase base
CA1062 Validar argumentos de métodos públicos
CA1063 Implementar IDisposable correctamente
CA1064 Las excepciones deben ser públicas
CA1065 No producir excepciones en ubicaciones inesperadas
CA1066 El tipo {0} debe implementar IEquatable<T> porque reemplaza a Equals
CA1067 Reemplazar Object.Equals(object) al implementar IEquatable<T>
CA1303 No pasar literales como parámetros localizados
CA1304 Especificar CultureInfo
CA1305 Especificar IFormatProvider
CA1307 Especificar StringComparison para mayor claridad
CA1308 Normalizar cadenas en mayúsculas
CA1309 Usar una comparación de cadena ordinal
CA1401 Los elementos P/Invoke no deben estar visibles
CA1501 Evitar una herencia excesiva
CA1502 Evitar una complejidad excesiva
CA1505 Evitar código que no se puede mantener
CA1506 Evitar el acoplamiento excesivo de clases
CA1700 No nombrar valores de enumeración como 'Reserved'
CA1707 Los identificadores no deben contener caracteres de subrayado
CA1708 Los identificadores se deben diferenciar en algo más que en el uso de mayúsculas y minúsculas
CA1710 Los identificadores deben tener un sufijo correcto
CA1711 Los identificadores no deben tener un sufijo incorrecto
CA1712 No utilizar prefijos en valores de enumeración con el nombre del tipo
CA1713 Los eventos no deben tener prefijos antes ni después
CA1714 Las enumeraciones Flags deben tener nombres en plural
CA1715 Los identificadores deben tener el prefijo correcto
CA1716 Los identificadores no deben coincidir con palabras clave
CA1717 Solo las enumeraciones FlagsAttribute deben tener nombres en plural
CA1720 El identificador contiene el nombre de tipo
CA1721 Los nombres de propiedades no deben coincidir con los métodos get
CA1724 Los nombres de tipo no deben coincidir con los espacios de nombres
CA1725 Los nombres de parámetro deben coincidir con la declaración base
CA1801 Revisar parámetros sin utilizar
CA1802 Utilizar literales cuando sea apropiado
CA1805 No inicializar innecesariamente
CA1806 No omitir resultados del método
CA1810 Inicializar campos estáticos de tipo de referencia insertados
CA1812 Evitar las clases internas sin instancia
CA1813 Evitar los atributos no sellados
CA1814 Preferir matrices escalonadas antes que multidimensionales
CA1815 Invalidar Equals y el operador Equals en los tipos de valores
CA1816 Los métodos Dispose deberían llamar a SuppressFinalize
CA1819 Las propiedades no deben devolver matrices
CA1820 Comprobar si las cadenas están vacías mediante la longitud de cadena
CA1821 Quitar finalizadores vacíos
CA1822 Marcar miembros como estáticos
CA1823 Evitar los campos privados sin utilizar
CA1824 Marcar los ensamblados con NeutralResourcesLanguageAttribute
CA1825 Evitar asignaciones de matrices de longitud cero
CA2000 Desechar objetos antes de perder el ámbito
CA2002 No bloquear objetos con identidad débil
CA2100 Revisar consultas SQL para comprobar si tienen vulnerabilidades de seguridad
CA2101 Especificar serialización en argumentos de cadena P/Invoke
CA2109 Revisar los controladores de eventos visibles
CA2119 Sellar los métodos que satisfacen las interfaces privadas
CA2153 No tomar excepciones de estado dañado
CA2200 Reiniciar para mantener los detalles de la pila
CA2201 No provocar tipos de excepción reservados
CA2207 Inicializar campos estáticos de tipo de valor insertados
CA2208 Crear instancias de las excepciones del argumento correctamente
CA2211 Los campos no constantes no deben ser visibles
CA2213 Los campos descartables deben ser descartables
CA2214 No llamar a métodos reemplazables en constructores
CA2215 Los métodos Dispose deben llamar al método Dispose de la clase base
CA2216 Los tipos descartables deben declarar el finalizador
CA2217 No marcar enumeraciones con FlagsAttribute
CA2219 No emitir excepciones en cláusulas finally
CA2225 Las sobrecargas del operador tienen alternativas con nombre
CA2226 Los operadores deben tener sobrecargas simétricas
CA2227 Las propiedades de la colección deben ser de solo lectura
CA2229 Implementar constructores de serialización
CA2231 Sobrecargar el operador de igualdad al reemplazar el tipo de valor Equals
CA2234 Pasar objetos URI de sistema en lugar de cadenas
CA2235 Marcar todos los campos no serializables
CA2237 Marcar los tipos ISerializable con serializable
CA2241 Proporcionar argumentos correctos a los métodos de formato
CA2242 Comprobar NaN correctamente
CA2243 Los literales de cadena de atributo se deben analizar correctamente
CA2300 No usar el deserializador no seguro BinaryFormatter
CA2301 No llamar a BinaryFormatter.Deserialize sin establecer primero BinaryFormatter.Binder
CA2302 Asegurarse de que BinaryFormatter.Binder está establecido antes de llamar a BinaryFormatter.Deserialize
CA2305 No usar el deserializador no seguro LosFormatter
CA2310 No usar el deserializador no seguro NetDataContractSerializer
CA2311 No deserializar sin establecer primero NetDataContractSerializer.Binder
CA2312 Asegúrese de que se establece NetDataContractSerializer.Binder antes de deserializar
CA2315 No usar el deserializador no seguro ObjectStateFormatter
CA2321 No deserializar con JavaScriptSerializer mediante SimpleTypeResolver
CA2322 Asegúrese de que JavaScriptSerializer no se ha inicializado con SimpleTypeResolver antes de deserializar
CA3001 Revisión de código en busca de vulnerabilidades de inyección de SQL
CA3002 Revisión de código en busca de vulnerabilidades de XSS
CA3003 Revisión de código en busca de vulnerabilidades de inyección de rutas de acceso a archivos
CA3004 Revisión de código en busca de vulnerabilidades de divulgación de información
CA3005 Revisión de código en busca de vulnerabilidades de inyección de LDAP
CA3006 Revisión de código en busca de vulnerabilidades de inyección de comandos de procesos
CA3007 Revisión de código en busca de vulnerabilidades de redireccionamiento abierto
CA3008 Revisión de código en busca de vulnerabilidades de inyección de XPath
CA3009 Revisión de código en busca de vulnerabilidades de inyección de XML
CA3010 Revisión de código en busca de vulnerabilidades de inyección de XAML
CA3011 Revisión de código en busca de vulnerabilidades de inyección de DLL
CA3012 Revisión de código en busca de vulnerabilidades de inyección de expresiones regulares
CA3061 No agregar esquema por dirección URL
CA3075 Procesamiento de DTD no seguro en XML
CA3076 Procesamiento no seguro de script de XSLT.
CA3077 Procesamiento no seguro en API Design, XmlDocument y XmlTextReader
CA3147 Marcar los controladores de verbos con validación de token antifalsificación
CA5350 No usar algoritmos criptográficos no seguros
CA5351 No usar algoritmos criptográficos dañados
CA5358 No usar modos de cifrado inseguro
CA5359 No deshabilitar la validación de certificado
CA5360 No llamar a métodos peligrosos durante la deserialización
CA5361 No deshabilitar el uso de cifrado seguro de Schannel
CA5362 La clase serializable no debe hacer referencia a sí misma
CA5363 No deshabilitar la validación de solicitudes
CA5364 No usar protocolos de seguridad en desuso
CA5365 No deshabilitar la comprobación de encabezados HTTP
CA5366 Utilizar XmlReader para el XML de lectura de DataSet
CA5367 No serializar los tipos con campos de puntero
CA5368 Establecer ViewStateUserKey para clases derivadas de página
CA5369 Usar XmlReader para deserializar
CA5370 Usar XmlReader para validar el lector
CA5371 Usar XmlReader para leer el esquema
CA5372 Usar XmlReader para XPathDocument
CA5373 No usar la función de derivación de clave obsoleta
CA5374 No utilizar XslTransform
CA5375 No usar la firma de acceso compartido de la cuenta
CA5376 Usar HttpsOnly con SharedAccessProtocol
CA5377 Usar una directiva de acceso de nivel de contenedor
CA5378 No deshabilitar ServicePointManagerSecurityProtocols
CA5379 No usar el algoritmo de función de derivación de claves débiles
CA9999 Las versiones del analizador no coinciden

Consulte también