Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Metoderna BinaryFormatter.Serialize(Stream, Object) och BinaryFormatter.Deserialize(Stream) kastar nu en NotSupportedException vid körning över nästan alla projekttyper, inklusive konsolprogram.
Tidigare beteende
I .NET 7 markerades metoderna BinaryFormatter.Serialize(Stream, Object) och BinaryFormatter.Deserialize(Stream) som föråldrade, vilket resulterade i ett fel vid kompileringstillfället. Men om ditt program undertryckte obsoletionen kan det fortfarande anropa metoderna och de fungerade korrekt i de flesta projekttyper (exklusive ASP.NET, WASM och MAUI). API:erna fungerade till exempel korrekt i en konsolapp.
Nytt beteende
Från och med .NET 8 genererar de berörda metoderna en NotSupportedException vid körning över alla projekttyper utom Windows Forms och WPF. API:erna fortsätter att vara föråldrade (som fel) för alla projekttyper, inklusive Windows Forms och WPF.
Version lanserad
Förhandsversion av .NET 8 4
Typ av brytande ändring
Den här ändringen är en beteendeförändring.
Orsak till ändring
Ändringen vid körning är nästa steg i BinaryFormatter-avvecklingsplanen, genom vilken BinaryFormatter så småningom tas bort från .NET.
Rekommenderad åtgärd
Det bästa sättet är att migrera bort från BinaryFormatter på grund av dess säkerhets- och tillförlitlighetsfel. Mer information finns i Föredragna alternativ.
Om du behöver fortsätta använda BinaryFormatterkan du ange en kompatibilitetsväxel i projektfilen för att återaktivera BinaryFormatter funktioner. Mer information finns i avsnittet Rekommenderad åtgärd i meddelandet om icke-bakåtkompatibla ändringar i .NET 7. Den kompatibilitetsväxlingen fortsätter att respekteras i .NET 8.
Berörda API:er
- System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream, Object)
 - System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream)