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
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