Remova chamadas para GC.KeepAlive
TypeName |
RemoveCallsToGCKeepAlive |
CheckId |
CA2004 |
Category (Categoria) |
Microsoft.confiabilidade |
Quebrando alterar |
Não separável |
Causa
Classes usar SafeHandle mas ainda contêm chamadas para GC.KeepAlive.
Descrição da regra
Se converter em SafeHandle uso, remova todas as chamadas para GC.KeepAlive (objeto). Nesse caso, classes não é necessário chamar GC.KeepAlive,Supondo que eles não conseguirem tiver um finalizador mas dependem SafeHandle Para finalizar o identificador do sistema operacional para eles. Embora o custo de deixar em uma telefonar para GC.KeepAlive pode ser desprezível em termos de desempenho, a percepção de que uma telefonar para GC.KeepAlive é necessário ou suficientes para solucionar um problema que talvez não exista mais torna mais difícil de manter o código de tempo de vida.
Como corrigir violações
Remova chamadas para GC.KeepAlive.
Quando suprimir avisos
É possível suprimir esse aviso somente se não for tecnicamente correta converter em SafeHandle uso na sua classe.