Bagikan melalui


BinaryFormatter dinonaktifkan di sebagian besar jenis proyek

Metode BinaryFormatter.Serialize(Stream, Object) dan BinaryFormatter.Deserialize(Stream) sekarang melemparkan NotSupportedException pada runtime di hampir semua jenis proyek, termasuk aplikasi konsol.

Perilaku sebelumnya

Di .NET 7, BinaryFormatter.Serialize(Stream, Object) metode dan BinaryFormatter.Deserialize(Stream) ditandai usang dan menimbulkan kesalahan pada waktu kompilasi. Namun, jika aplikasi Anda menekan penghapusan atau pembatalan, aplikasi tersebut masih bisa memanggil metode-metode yang berfungsi dengan baik di sebagian besar jenis proyek, tetapi tidak dalam proyek ASP.NET, WASM, dan MAUI. Misalnya, API berfungsi dengan benar di aplikasi konsol.

Perilaku baru

Mulai dari .NET 8, metode yang terpengaruh melemparkan NotSupportedException pada runtime di semua jenis proyek kecuali Windows Forms dan WPF. API tetap usang karena kesalahan pada semua jenis proyek, termasuk Windows Forms dan WPF.

Versi yang diperkenalkan

Pratinjau .NET 8 4

Jenis perubahan yang memutus kompatibilitas

Perubahan ini adalah perubahan perilaku .

Alasan perubahan

Perubahan runtime ini adalah tahap berikutnya dari rencana kehancuran BinaryFormatter, di mana BinaryFormatter pada akhirnya akan dihapus dari .NET.

Tindakan terbaik adalah bermigrasi jauh dari BinaryFormatter karena kelemahan keamanan dan keandalannya. Untuk informasi selengkapnya, lihat Alternatif pilihan.

Jika Anda perlu terus menggunakan BinaryFormatter, Anda dapat mengatur sakelar kompatibilitas dalam file proyek Anda untuk mengaktifkan BinaryFormatter kembali fungsionalitas. Untuk informasi selengkapnya, lihat bagian Tindakan yang direkomendasikan dari pemberitahuan perubahan pemecahan masalah .NET 7. Sakelar kompatibilitas tersebut terus berlaku di .NET 8.

API yang terpengaruh

Lihat juga