Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Karena kerentanan keamanan di BinaryFormatter, API berikut ditandai sebagai usang di .NET 5. Menggunakannya dalam kode menghasilkan peringatan atau kesalahan SYSLIB0011 pada waktu kompilasi.
- System.Exception.SerializeObjectState
- BinaryFormatter.Serialize
- BinaryFormatter.Deserialize
- Formatter.Serialize(Stream, Object)
- Formatter.Deserialize(Stream)
- IFormatter.Serialize(Stream, Object)
- IFormatter.Deserialize(Stream)
Mulai dari .NET 8, BinaryFormatter.Serialize dan BinaryFormatter.Deserialize melemparkan NotSupportedException pada runtime pada sebagian besar jenis proyek. Selain itu, PreserializedResourceWriter.AddBinaryFormattedResource(String, Byte[], String) kadaluarsa dengan peringatan, dan API berikut ini kadaluarsa dengan kesalahan:
- System.Runtime.Serialization.Formatter
- System.Runtime.Serialization.IFormatter
- System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
Penyelesaian masalah
Jika Anda menggunakan BinaryFormatter, Anda harus beralih dari itu karena kelemahan keamanan dan keandalannya. Untuk informasi selengkapnya, lihat Risiko deserialisasi dalam penggunaan BinaryFormatter dan jenis terkait dan Alternatif pilihan.
Menyembunyikan peringatan
Jika Anda harus menggunakan API usang, Anda dapat menekan peringatan/kesalahan dalam kode atau dalam file proyek Anda.
Untuk menekan hanya satu pelanggaran, tambahkan direktif praprosedur ke file sumber Anda untuk menonaktifkan lalu mengaktifkan kembali peringatan.
// Disable the warning.
#pragma warning disable SYSLIB0011
// Code that uses obsolete API.
// ...
// Re-enable the warning.
#pragma warning restore SYSLIB0011
Untuk menyembunyikan semua peringatan SYSLIB0011 dalam proyek Anda, tambahkan properti <NoWarn> ke file proyek Anda.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
...
<NoWarn>$(NoWarn);SYSLIB0011</NoWarn>
</PropertyGroup>
</Project>
Untuk informasi lebih lanjut, lihat Sembunyikan peringatan.