BinaryFormatter zakázáno u většiny typů projektů
Metody BinaryFormatter.Serialize(Stream, Object) teď můžou za běhu vyvolat NotSupportedException téměř všechny typy projektů, včetně konzolových BinaryFormatter.Deserialize(Stream) aplikací.
Předchozí chování
V .NET 7 BinaryFormatter.Serialize(Stream, Object) byly označeny a BinaryFormatter.Deserialize(Stream) metody byly označeny zastaralé a vyvolaly chybu v době kompilace. Pokud však vaše aplikace potlačí obsoletion, může stále volat metody a fungují správně ve většině typů projektů (s výjimkou ASP.NET, WASM a MAUI). Například rozhraní API správně fungovala v aplikaci konzoly.
Nové chování
Počínaje rozhraním .NET 8 vyvolá ovlivněné metody NotSupportedException za běhu všechny typy projektů s výjimkou model Windows Forms a WPF. Rozhraní API zůstávají zastaralá (jako chyba) napříč všemi typy projektů, včetně model Windows Forms a WPF.
Zavedená verze
.NET 8 Preview 4
Typ zásadní změny
Tato změna je změna chování.
Důvod změny
Tato změna za běhu je další fází plánu obsoletion BinaryFormatter, ve které BinaryFormatter se nakonec odebere z .NET.
Doporučená akce
Nejlepší postup je migrovat mimo BinaryFormatter
provoz kvůli chybám zabezpečení a spolehlivosti. Další informace najdete v tématu Upřednostňované alternativy.
Pokud potřebujete pokračovat v používání BinaryFormatter
, můžete v souboru projektu nastavit přepínač kompatibility, aby se znovu povolily BinaryFormatter
funkce. Další informace najdete v části Doporučená akce oznámení o zásadní změně rozhraní .NET 7. Tento přepínač kompatibility bude v .NET 8 dál dodržen.
Ovlivněná rozhraní API
- System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream, Object)
- System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream)