Warnung CA2015: Keine Finalizer für von MemoryManager<T> abgeleitete Typen definieren
Die .NET-Codeanalyseregel CA2015 ist ab .NET 5 standardmäßig aktiviert. Sie erzeugt eine Buildwarnung für alle Typen, die von MemoryManager<T> abgeleitet werden und einen Finalizer definieren.
Änderungsbeschreibung
Ab .NET 5 umfasst das .NET SDK .NET-Quellcodeanalysen. Mehrere dieser Regeln, einschließlich CA2015, werden standardmäßig aktiviert. Wenn Ihr Projekt Code enthält, der gegen diese Regel verstößt und dafür konfiguriert ist, Warnungen als Fehler zu interpretieren, könnte es sich hierbei um einen Breaking Change für Ihr Build handeln.
Mithilfe der Regel CA2015 werden Typen gekennzeichnet, die von MemoryManager<T> abgeleitet werden und einen Finalizer definieren. Wenn ein Finalizer zu einem von MemoryManager<T> abgeleiteten Typen hinzugefügt wird, liegt wahrscheinlich ein Fehler vor. Dieser deutet darauf hin, dass eine native Ressource, die in einer Span<T>-Struktur abgerufen werden könnte, bereinigt wird, während sie möglicherweise noch von Span<T> verwendet wird.
Eingeführt in Version
5.0
Empfohlene Maßnahme
Entfernen Sie die Definition des Finalizers. Weitere Informationen finden Sie unter CA2015.
Legen Sie
EnableNETAnalyzers
in Ihrer Projektdatei auffalse
fest, um die Codeanalyse vollständig zu deaktivieren. Weitere Informationen finden unter EnableNETAnalyzers.
Betroffene APIs
Nicht über API-Analyse erkennbar.
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für