Aracılığıyla paylaş


SYSLIB0011: BinaryFormatter serileştirmesi kullanımdan kaldırıldı

içindeki BinaryFormattergüvenlik açıkları nedeniyle aşağıdaki API'ler .NET 5'te kullanım dışı olarak işaretlendi. Bunları kodda kullanmak, derleme zamanında uyarı veya hata SYSLIB0011 oluşturur.

.NET 8'den BinaryFormatter.Serialize başlayarak ve BinaryFormatter.Deserialize çoğu proje türünde çalışma zamanında bir NotSupportedException oluşturur. Ayrıca uyarı PreserializedResourceWriter.AddBinaryFormattedResource(String, Byte[], String) olarak kullanımdan kaldırıldı ve aşağıdaki API'ler hata olarak kullanımdan kaldırıldı:

Geçici Çözümler

kullanıyorsanız BinaryFormatter, güvenlik ve güvenilirlik açıkları nedeniyle geçiş yapmalısınız. Daha fazla bilgi için bkz . BinaryFormatter ve ilgili türlerin kullanımında seri durumdan çıkarma riskleri ve Tercih edilen alternatifler.

Uyarıyı gizleme

Eski API'leri kullanmanız gerekiyorsa, kodda veya proje dosyanızda uyarıyı/hatayı gizleyebilirsiniz.

Yalnızca tek bir ihlali engellemek için, önişlemci yönergelerini kaynak dosyanıza ekleyerek uyarıyı devre dışı bırakın ve sonra yeniden etkinleştirin.

// Disable the warning.
#pragma warning disable SYSLIB0011

// Code that uses obsolete API.
// ...

// Re-enable the warning.
#pragma warning restore SYSLIB0011

Projenizdeki tüm SYSLIB0011 uyarıları engellemek için proje dosyanıza bir <NoWarn> özellik ekleyin.

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
   ...
   <NoWarn>$(NoWarn);SYSLIB0011</NoWarn>
  </PropertyGroup>
</Project>

Daha fazla bilgi için bkz . Uyarıları gizleme.

Ayrıca bkz.