BinaryFormatter çoğu proje türünde devre dışı bırakıldı
BinaryFormatter.Serialize(Stream, Object) ve BinaryFormatter.Deserialize(Stream) yöntemleri artık konsol uygulamaları da dahil olmak üzere neredeyse tüm proje türlerinde çalışma zamanında bir NotSupportedException oluşturur.
Önceki davranış
.NET 7'de BinaryFormatter.Serialize(Stream, Object) ve BinaryFormatter.Deserialize(Stream) yöntemleri eski olarak işaretlendi ve derleme zamanında bir hataya neden oldu. Ancak, uygulamanız kullanımdan kaldırmayı bastırdıysa, yine de yöntemleri çağırabilir ve çoğu proje türünde (ASP.NET, WASM ve MAUI hariç) düzgün şekilde çalışır. Örneğin, API'ler bir konsol uygulamasında doğru şekilde çalışır.
Yeni davranış
.NET 8'den başlayarak, etkilenen yöntemler Windows Forms ve WPF dışındaki tüm proje türlerinde çalışma zamanında bir NotSupportedException oluşturur. API'ler, Windows Forms ve WPF de dahil olmak üzere tüm proje türlerinde eski (hata olarak) kalmaya devam eder.
Sürüm kullanıma sunulmuştur
.NET 8 Önizleme 4
Hataya neden olan değişikliğin türü
Bu değişiklik davranışsal bir değişikliktir.
Değişiklik nedeni
Bu çalışma zamanı değişikliği, Sonunda .NET'ten kaldırılacak olan BinaryFormatter BinaryFormatter kullanımdan kaldırma planının sonraki aşamasıdır.
Önerilen eylem
En iyi eylem, güvenlik ve güvenilirlik açıkları nedeniyle geçiş BinaryFormatter
yapmaktır. Daha fazla bilgi için bkz . Tercih edilen alternatifler.
kullanmaya BinaryFormatter
devam etmeniz gerekiyorsa, işlevselliği yeniden etkinleştirmek BinaryFormatter
için proje dosyanızda bir uyumluluk anahtarı ayarlayabilirsiniz. Daha fazla bilgi için .NET 7 hataya neden olan değişiklik bildiriminin Önerilen eylem bölümüne bakın. Bu uyumluluk anahtarı .NET 8'de kabul edilmeye devam eder.
Etkilenen API’ler
- System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream, Object)
- System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream)