Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Metody BinaryFormatter.Serialize(Stream, Object) a BinaryFormatter.Deserialize(Stream) teď za běhu vyvolají NotSupportedException ve většině typů projektů, včetně konzolových aplikací.
Předchozí chování
V .NET 7 byly metody BinaryFormatter.Serialize(Stream, Object) a BinaryFormatter.Deserialize(Stream) označeny jako zastaralé a při kompilaci způsobily chybu. Pokud však vaše aplikace potlačí zastaralost, může stále volat tyto metody a ty fungují správně ve většině typů projektů (s výjimkou ASP.NET, WASM a MAUI). Například rozhraní API fungovala správně v konzolové aplikaci.
Nové chování
Počínaje rozhraním .NET 8 ovlivněné metody při běhu vyvolají NotSupportedException ve všech typech projektů kromě modelů Windows Forms a WPF. Rozhraní API nadále zůstávají zastaralá (jako chyba) ve všech typech projektů, včetně frameworků Windows Forms a WPF.
Verze byla představena
.NET 8 Preview 4
Typ zásadní změny
Tato změna je změna chování.
Důvod změny
Tato změna v modulu runtime představuje další fázi plánu zastarání BinaryFormatter, kde bude nakonec BinaryFormatter odstraněn z .NET.
Doporučená akce
Kvůli chybám v zabezpečení a spolehlivosti je nejlepší postup migrovat pryč od BinaryFormatter. 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)