CA2004: Quitar las llamadas a GC.KeepAlive

Elemento Valor
RuleId CA2004
Category Microsoft.Reliability
Cambio importante Poco problemático

Causa

Las clases usan SafeHandle pero todavía incluyen llamadas a GC.KeepAlive.

Descripción de la regla

Si va a realizar la conversión al uso SafeHandle, quite todas las llamadas a GC.KeepAlive (objeto). En este caso, las clases no deberían tener que llamar a GC.KeepAlive, si se supone que no tienen un finalizador, pero se basan en SafeHandle a fin de completar el identificador del sistema operativo para ellas. Aunque el costo de dejar una llamada a GC.KeepAlive podría ser insignificante según el rendimiento, la percepción de que una llamada a GC.KeepAlive es necesaria o suficiente para resolver un problema de duración que ya no existe hace que el código sea más difícil de mantener.

Cómo corregir infracciones

Quite las llamadas a GC.KeepAlive.

Cuándo suprimir las advertencias

Solo puede suprimir esta advertencia si no es técnicamente correcta para convertir al uso SafeHandle de la clase.