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

  • Entfernen Sie die Definition des Finalizers. Weitere Informationen finden Sie unter CA2015.

  • Legen Sie EnableNETAnalyzers in Ihrer Projektdatei auf false fest, um die Codeanalyse vollständig zu deaktivieren. Weitere Informationen finden unter EnableNETAnalyzers.

Betroffene APIs

Nicht über API-Analyse erkennbar.