Aviso CA2015: não definir finalizadores para tipos derivados de MemoryManager<T>
A regra do analisador de código .NET CA2015 está habilitada, por padrão, a partir do .NET 5. Ela produz um aviso de build para todos os tipos que derivam de MemoryManager<T> que definem um finalizador.
Descrição das alterações
Do .NET 5 em diante, o SDK do .NET inclui Analisadores de código-fonte do .NET. Várias dessas regras estão habilitadas, por padrão, inclusive a CA2015. Se o projeto contiver um código que viole essa regra e estiver configurado para tratar avisos como erros, essa alteração poderá interromper o build.
A regra CA2015 sinaliza tipos que derivam de MemoryManager<T> que definem um finalizador. A adição de um finalizador a um tipo que deriva de MemoryManager<T> provavelmente é uma indicação de um bug. Ela sugere que um recurso nativo que poderia ter sido obtido em um Span<T> está sendo limpo, potencialmente enquanto ainda está em uso pelo Span<T>.
Versão introduzida
5,0
Ação recomendada
Remova a definição do finalizador. Para obter mais informações, confira CA2015.
Para desabilitar completamente a análise de código, defina
EnableNETAnalyzers
comofalse
no arquivo de projeto. Para obter mais informações, confira EnableNETAnalyzers.
APIs afetadas
Não detectáveis com a análise de API.
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de