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.
- System.Exception.SerializeObjectState
- BinaryFormatter.Serialize
- BinaryFormatter.Deserialize
- Formatter.Serialize(Stream, Object)
- Formatter.Deserialize(Stream)
- IFormatter.Serialize(Stream, Object)
- IFormatter.Deserialize(Stream)
.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ı:
- System.Runtime.Serialization.Formatter
- System.Runtime.Serialization.IFormatter
- System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
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.
- BinaryFormatter kullanımdan kaldırma ve devre dışı bırakma hatalarını çözme
- BinaryFormatter serileştirme yöntemleri eskidir ve ASP.NET uygulamalarında yasaklanmıştır (.NET 5)
- BinaryFormatter serileştirme API'leri derleyici hataları üretir (.NET 7)
- BinaryFormatter çoğu proje türünde devre dışı bırakıldı (.NET 8)