CA2001: Evitar llamar a métodos problemáticos
TypeName |
AvoidCallingProblematicMethods |
Identificador de comprobación |
CA2001 |
Categoría |
Microsoft.Reliability |
Cambio problemático |
Poco problemático |
Motivo
Un miembro llama a un método potencialmente peligroso o problemático.
Descripción de la regla
Evite realizar llamadas a métodos potencialmente peligrosas e innecesarias.
Esta regla se infringe cuando un miembro llama a uno de los métodos siguientes.
Método |
Descripción |
---|---|
Llamar a GC.Collect puede afectar al rendimiento de la aplicación significativamente y rara vez es necesario.Para obtener más información, vea Curiosidades de rendimiento de Enriquecido Mariani la entrada de blog en MSDN. |
|
Thread.Suspend y Thread.Resume han quedado en desuso debido a su comportamiento impredecible. Utilice otras clases del espacio de nombres System.Threading, como Monitor, [T:System.Threading.Mutex,], Mutex y Semaphore para sincronizar los subprocesos o proteger los recursos. |
|
El método DangerousGetHandle supone un riesgo para la seguridad porque puede devolver un controlador que es no válido.Vea los métodos DangerousAddRef y DangerousRelease para obtener más información sobre cómo utilizar el método DangerousGetHandle de forma segura. |
|
Estos métodos pueden cargar ensamblados desde ubicaciones inesperadas.Por ejemplo, vea elementos LoadFile con LoadFrom de blog notas de .NET CLR de Susana Cook y Elegir un contexto de enlace en el sitio web de MSDN para obtener información sobre los métodos que cargan los ensamblados. |
|
CoSetProxyBlanket (Ole32) CoInitializeSecurity (Ole32) |
Cuando el código de usuario comienza a ejecutarse en un proceso administrado, es demasiado tarde para llamar de forma confiable a CoSetProxyBlanket.Common Language Runtime (CLR) toma medidas de inicialización que pueden impedir que los usuarios usen P/Invoke con éxito. Si necesita llamar a CoSetProxyBlanket para una aplicación administrada, se recomienda que inicie el proceso mediante un ejecutable de código nativo (C++), llame a CoSetProxyBlanket en el código nativo y, a continuación, inicie la aplicación de código administrado en proceso. (Asegúrese de especificar el número de versión del motor en tiempo de ejecución.) |
Cómo corregir infracciones
Para corregir una infracción de esta regla, quite o reemplace la llamada al método peligroso o problemático.
Cuándo suprimir advertencias
Solo debería suprimir los mensajes de esta regla cuando no haya otra alternativa disponible al método problemático.