Freigeben über


BinaryFormatter für die meisten Projekttypen deaktiviert

Die Methoden BinaryFormatter.Serialize(Stream, Object) und BinaryFormatter.Deserialize(Stream) lösen jetzt zur Laufzeit in nahezu allen Projekttypen eine NotSupportedException aus, was auch für Konsolenanwendungen gilt.

Vorheriges Verhalten

In .NET 7 wurden die Methoden BinaryFormatter.Serialize(Stream, Object) und BinaryFormatter.Deserialize(Stream) als veraltet gekennzeichnet, und es wurde zur Kompilierzeit ein Fehler ausgelöst. Wenn Ihre Anwendung die Veraltung jedoch unterdrückt hat, kann sie die Methoden trotzdem aufrufen, und sie funktionierten in den meisten Projekttypen ordnungsgemäß (mit Ausnahme von ASP.NET, WASM und MAUI). Beispielsweise funktionierten die APIs in einer Konsolen-App ordnungsgemäß.

Neues Verhalten

Ab .NET 8 lösen die betroffenen Methoden zur Laufzeit für alle Projekttypen außer Windows Forms und WPF eine NotSupportedException aus. Die APIs bleiben weiterhin für alle Projekttypen veraltet (als Fehler), einschließlich Windows Forms und WPF.

Eingeführt in Version

.NET 8 Vorschauversion 4

Typ des Breaking Changes

Diese Änderung ist eine Verhaltensänderung.

Grund für die Änderung

Diese Laufzeitänderung bildet die nächste Phase des Plans zur Einstellung von BinaryFormatter, nach dem BinaryFormatter schließlich aus .NET entfernt wird.

Die beste Vorgehensweise besteht darin, aufgrund von Sicherheits- und Zuverlässigkeitsfehlern von BinaryFormatter weg zu migrieren. Weitere Informationen finden Sie unter Bevorzugte Alternativen.

Wenn Sie weiterhin BinaryFormatter verwenden, können Sie einen Kompatibilitätsschalter in Ihrer Projektdatei festlegen, um die Funktionalität von BinaryFormatter wieder zu aktivieren. Weitere Informationen finden Sie im Abschnitt Empfohlene Aktion der Benachrichtigung zum Breaking Change in .NET 7. Dieser Kompatibilitätsschalter wird auch in .NET 8 weiterhin berücksichtigt.

Betroffene APIs

Siehe auch