SYSLIB0011: Serialisasi BinaryFormatter sudah usang

Karena kerentanan keamanan di BinaryFormatter, API berikut ditandai sebagai usang di .NET 5. Menggunakannya dalam kode menghasilkan peringatan atau kesalahan SYSLIB0011 pada waktu kompilasi.

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:

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.

Lihat juga