BinaryFormatter zakázáno u většiny typů projektů

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.

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

Viz také