C# içinde ISerializable
arabirimini uygularken, SerializationInfo
nesnesini alan bir kurucu sağladık ve sonra seri hale getirmeye çalıştığımız nesnenin alanlarını doldurmak için çeşitli GetInt32
, GetObject
vb. Yöntemlerle sorgular.SerializationInfo, neden TryGetValue yöntemlerine sahip değil?
Bu arayüzü uygulamak yerine, sadece [Serializable]
özelliğini kullanmak yerine, geriye dönük uyumluluk içindir sağladığı en büyük nedeni: biz bir noktada sınıfa yeni alanlar eklendi varsa, bir tefrika, eski sürümü tarafından atılan SerializationException
yakalayabilirsiniz sınıfın ve uygun bir şekilde bunları işlemek.
Sorum şu: Neden bu istisnaları temel olarak kontrol akışı için kullanmak zorundayız? Bir süre önce kaydedilen çok sayıda sınıfın seri hale getirilmesi durumunda, potansiyel olarak her sınıftaki eksik alan bir istisna atar ve bu da gerçekten kötü performansa neden olur.
SerializationInfo
sınıfı neden ad dizisi yoksa false
olan TryGetValue
yöntemlerini sağlamıyor?
her kimse sor: '.. o MS'e gönderilmiş tahmin ihtiyacı olan herkes için
My uygulanmasını m –
sınıfını uygulamış olabilirler belki de buradalar: P –