Avertissement CA2015 : ne pas définir de finaliseurs pour les types dérivés de MemoryManager<T>
La règle d’analyseur de code .NET CA2015 est activée par défaut à compter de .NET 5. Il génère un avertissement de build pour tous les types qui dérivent de MemoryManager<T> et définissent un finaliseur.
Description de la modification
À compter de .NET 5, le Kit de développement logiciel (SDK) .NET inclut des analyseurs de code source .NET. Plusieurs de ces règles sont activées par défaut, y compris CA2015. Si votre projet contient du code qui enfreint cette règle et est configuré pour traiter les avertissements comme des erreurs, ce changement peut casser votre build.
La règle CA2015 signale les types qui dérivent de MemoryManager<T> et définissent un finaliseur. L’ajout d’un finaliseur à un type qui dérive de MemoryManager<T> est probablement une indication d’un bogue. Il suggère qu’une ressource native qui aurait pu être obtenue dans un Span<T> est en cours de nettoyage, potentiellement alors qu’elle est toujours utilisée par le Span<T>.
Version introduite
5,0
Action recommandée
Supprimez la définition du finaliseur. Pour plus d’informations, consultez CA2015.
Pour désactiver complètement l’analyse du code, définissez
EnableNETAnalyzers
surfalse
dans votre fichier projet. Pour plus d’informations, consultez EnableNETAnalyzers.
API affectées
Non détectable via l’analyse des API.
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour