CA2004: Rimuovere le chiamate a GC.KeepAlive
TypeName |
RemoveCallsToGCKeepAlive |
CheckId |
CA2004 |
Category |
Microsoft.Reliability |
Breaking Change |
Non sostanziale |
Causa
Le classi utilizzano SafeHandle ma contengono ancora chiamate a GC.KeepAlive.
Descrizione della regola
Se si effettua la conversione all'utilizzo di SafeHandle, rimuovere tutte le chiamate a GC.KeepAlive (oggetto).In questo caso, non dovrebbe essere necessario per le classi chiamare GC.KeepAlive,presumendo che non dispongano di un finalizzatore ma si affidino a SafeHandle per completare l'handle del sistema operativo.Anche se le conseguenze dell'uscita in una chiamata a GC.KeepAlive potrebbero essere trascurabili in termini di prestazioni, la percezione che una chiamata a GC.KeepAlive sia necessaria o sufficiente a risolvere un problema di durata che potrebbe non esistere più rende particolarmente difficile la gestione del codice.
Come correggere le violazioni
Rimuovere le chiamate a GC.KeepAlive.
Esclusione di avvisi
È possibile escludere questo avviso solo se non è tecnicamente corretto effettuare la conversione all'utilizzo di SafeHandle nella propria classe.