BinaryFormatter uitgeschakeld voor de meeste projecttypen
De BinaryFormatter.Serialize(Stream, Object) en BinaryFormatter.Deserialize(Stream) methoden gooien nu een NotSupportedException runtime in bijna alle projecttypen, inclusief consoletoepassingen.
Vorig gedrag
In .NET 7 werden de BinaryFormatter.Serialize(Stream, Object) en BinaryFormatter.Deserialize(Stream) methoden gemarkeerd als verouderd en werden er tijdens het compileren een fout gegenereerd. Echter, als uw toepassing de verdoezeling onderdrukt, kan het nog steeds de methoden aanroepen en ze goed functioneren in de meeste projecttypen (met uitzondering van ASP.NET, WASM en MAUI). De API's werken bijvoorbeeld correct in een console-app.
Nieuw gedrag
Vanaf .NET 8 gooien de betrokken methoden een NotSupportedException runtime voor alle projecttypen, met uitzondering van Windows Forms en WPF. De API's blijven verouderd (als fout) voor alle projecttypen, waaronder Windows Forms en WPF.
Versie geïntroduceerd
.NET 8 Preview 4
Type wijziging die fouten veroorzaken
Deze wijziging is een gedragswijziging.
Reden voor wijziging
Deze runtimewijziging is de volgende fase van het BinaryFormatter-obsoletion-plan, waarin BinaryFormatter uiteindelijk uit .NET wordt verwijderd.
Aanbevolen actie
De beste procedure is om weg BinaryFormatter
te migreren vanwege de beveiligings- en betrouwbaarheidsfouten. Zie Voorkeursalternatieven voor meer informatie.
Als u wilt blijven gebruiken BinaryFormatter
, kunt u een compatibiliteitsswitch instellen in uw projectbestand om de functionaliteit opnieuw in te schakelen BinaryFormatter
. Zie de sectie Aanbevolen actie van de melding voor wijziging die fouten veroorzaken in .NET 7 voor meer informatie. Deze compatibiliteitsswitch wordt nog steeds uitgevoerd in .NET 8.
Betrokken API's
- System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream, Object)
- System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream)