Sdílet prostřednictvím


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.

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

Viz také