Udostępnij za pośrednictwem


BinaryFormatter wyłączony w większości typów projektów

Metody BinaryFormatter.Serialize(Stream, Object) i BinaryFormatter.Deserialize(Stream) teraz zgłaszają NotSupportedException w czasie wykonywania niemal wszystkie typy projektów, w tym aplikacje konsolowe.

Poprzednie zachowanie

Na platformie .NET 7 BinaryFormatter.Serialize(Stream, Object) metody i BinaryFormatter.Deserialize(Stream) zostały oznaczone jako przestarzałe i zgłosiły błąd w czasie kompilacji. Jeśli jednak aplikacja pominąła obsoletion, nadal może wywołać metody i działają prawidłowo w większości typów projektów (z wyłączeniem ASP.NET, WASM i MAUI). Na przykład interfejsy API działały poprawnie w aplikacji konsolowej.

Nowe zachowanie

Począwszy od platformy .NET 8, których dotyczy problem, metody zgłaszają NotSupportedException w czasie wykonywania we wszystkich typach projektów z wyjątkiem windows Forms i WPF. Interfejsy API nadal pozostają przestarzałe (jako błąd) we wszystkich typach projektów, w tym Windows Forms i WPF.

Wprowadzona wersja

.NET 8 (wersja zapoznawcza 4)

Typ zmiany powodującej niezgodność

Ta zmiana jest zmianą behawioralną.

Przyczyna wprowadzenia zmiany

Ta zmiana czasu wykonywania jest kolejnym etapem planu obsoletion BinaryFormatter, w którym BinaryFormatter ostatecznie zostanie usunięty z platformy .NET.

Najlepszym sposobem działania jest migracja z dala od BinaryFormatter ze względu na jego wady zabezpieczeń i niezawodności. Aby uzyskać więcej informacji, zobacz Preferowane alternatywy.

Jeśli chcesz kontynuować korzystanie z BinaryFormatterprogramu , możesz ustawić przełącznik zgodności w pliku projektu, aby ponownie włączyć BinaryFormatter funkcję. Aby uzyskać więcej informacji, zobacz sekcję Zalecana akcja powiadomienia o zmianie powodującej niezgodność platformy .NET 7. Ten przełącznik zgodności jest nadal honorowany na platformie .NET 8.

Dotyczy interfejsów API

Zobacz też