Aracılığıyla paylaş


için Windows Presentation Foundation(WPF) geçiş kılavuzu BinaryFormatter

BinaryFormatter Kaldırma

.NET 9'dan başlayarak bilinen BinaryFormatter güvenlik riskleri nedeniyle artık desteklenmemektedir ve API'leri uygulamalar da dahil olmak üzere PlatformNotSupportedException tüm proje türleri için her zaman bir WPF oluşturur. Riskler BinaryFormatter ve kaldırılmasının nedeni hakkında daha fazla bilgi için geçiş kılavuzuna BinaryFormatterbakın.

'nin kaldırılmasıyla BinaryFormatterbirlikte birçok WPF uygulamanın etkilenmesi beklenir ve .NET 9 veya sonraki bir sürüme geçişinizi tamamlamak için işlem yapmanız gerekir.

Nasıl BinaryFormatter etkiler? WPF

.NET 9'un öncesinde, Windows Presentation Foundation (WPF) pano, sürükle ve bırak ve günlükte yükleme/depolama durumu gibi senaryolar için verileri seri hale getirmek ve seri durumdan çıkarmak için kullanılırdı BinaryFormatter . .NET 9 ve Windows Forms ile başlayarak bu WPF senaryolar için uygulamanın bir alt kümesini BinaryFormatter dahili olarak kullanır. BinaryFormatter'nin riskleri genel amaçlı serileştirme/seri durumdan çıkarmada ele alınamasa da, bilinen bir tür kümesine sahip bu çok özel kullanım örneklerindeki riskleri azaltmak için önlemler alınmıştır. Uygulamasına BinaryFormatter geri dönüş, bilinmeyen veya desteklenmeyen türler için hala yerindedir ve uygulamada geçiş adımları uygulanmadığı sürece bir PlatformNotSupportedException oluşturur.

WPF ve WinForms uygulamaları aşağıdaki türlerin yanı sıra bu türlerin dizilerini ve listelerini işler. Pano, sürükle ve bırak ve Günlükteki Avalon Bağlama, geçiş adımları gerekmeden bu türlerle çalışmaya devam edecektir.

OLE Senaryoları

Pano ve sürükle ve bırak gibi OLE senaryolarında etkileri BinaryFormatter kaldırmanın yanı sıra geçiş kılavuzu hakkında bilgi için bkz . Windows Forms ve Windows Presentation Foundation BinaryFormatter OLE kılavuzu.

İşlemek üzere nesneyi okumak/kaydetmek için geri dönüş olarak kullandığımız BinaryFormatter işleve başvurabilirsiniz: OLE senaryoları için SaveObjectToHandle ve ReadObjectFromHandle

Günlük kaydı

içinde gezinti geçmişini WPFyönetirken bir durumu depolamamız veya yüklememiz gerektiğinde.

Yüklemek/kaydetmek için sınıfının LoadSubStreams/ çağrısı DataStream yapıyoruz. Yeni uygulama tarafından işlenen know türünün parçası olmayan öğesi kullanılır BinaryFormatter.

Bir geliştirici , Navigateveya GoForwardkullanarak GoBackJournalEntry'de gezindiğinde düğümün verileri yüklenir veya durumu kaydetmek için bir akışa kaydedilir. Söz konusu tür serileştirme/seri durumdan çıkarma sırasında içsel olarak işlenmiyorsa kullanılır BinaryFormatter .

Başvuru: DataStream.cs

.NET 9 kullanıcılarından BinaryFormatter geçiş yapamazlar, desteklenmeyen bir uyumluluk paketi yükleyebilir. Daha fazla bilgi için bkz BinaryFormatter . Geçiş kılavuzu: Uyumluluk Paketi.

Dikkat

BinaryFormatter tehlikelidir ve hizmet reddi (DoS), bilgilerin açığa çıkması veya uzaktan kod yürütme gibi saldırılar için tüketen uygulamaları riske atması önerilmez. Riskler BinaryFormatter hakkında daha fazla bilgi için bkzBinaryFormatter kullanımında seri durumdan çıkarma riskleri.

Sorunlar

Başvurunuzda WPF ile ilişkili beklenmeyen davranışlarla karşılaşırsanız, lütfen BinaryFormatter adresinde bir sorun oluşturun ve bunun kaldırılmasıyla ilgili olduğunu belirtin.