sağ diyor .NET XmlIgnoreAttribute, anlamada Am I:XmlIgnoreAttribute, seri hale getirme sırasında değil, yalnızca seri hale getirme sırasında kullanılır?
/kamu alanını veya kamu okuma seri özellik değerini yazmak için değil XmlSerializer serialize yöntemini talimatını verir.
o:
- mülkiyet serisi kaldırılan olacak, XML dosyasındaki eğer mevcut?
- Özellik yeni bir XML dosyasına serileştirilmeyecek mi?
Sormamın nedeni, dosyadaki bir özelliği, yeni bir seçenekle daha fazla seçenekle değiştirdiğim. Eski mülk basit bir boole mülküydü ve yeni olan bir enum. Eski özelliği değiştirdim, böylece yeni mülkün ne anlama geldiğine göre, yeni mülkün değerini bir boole değerine dönüştürür.
Bu özellik, yeni özelliği ayarlayan eski özelliği okuyarak yeni dosyaları sessizce yükseltmeme izin verdi ve serileştirme sonrasında yeni özellik eklendi.
Ancak, eski xml dosyasındaki eski özelliği kaldırmak istiyorum, bu yüzden ben [XmlIgnore]
ile etiketlenmiş olsaydım, eski xml dosyası düzgün bir şekilde seriyi seri hale getirip bu özelliği dosyadan okuyabilseydim ne olacağını merak ediyordum, ya da Tamamen göz ardı edilir mi?
Değilse, aşağıdaki değişiklik istediğimi yapar mı?
[XmlAttribute("is-list")]
[DefaultValue(false)]
public bool IsList
{
get { return false; }
set {
if (value)
ListHandling = ListHandling.All;
}
}
Bu benim varsayılan bir değer belirttiniz beri göz ardı edileceği tüm yeni nesneler için return false ve eğer varsa eski dosyada, ve gerçek olarak ayarlanmış olur, yani, hangi ListHandling özelliğini değiştirecek önemli olan yeni olan.
Düzenle: Sınama üzerine, her iki yaklaşımın da istediğimi yapmakta olduğu doğrulandı. Yine de, yukarıda belirtilen ilk davranışın sadece bir uygulama detayı mı, yoksa belgelerin bu şekilde anlaşılıp anlaşılmayacağını bilmek isterim.
Tamam, teşekkürler, o zaman testimin ne yaptığını göstermesi çok şanssızlıktı. sanırım ikinci uygulamamı kullanmak istediğim odur. –
[XmlIgnore] öğesini alt sınıf/geçersiz kılınan bir özelliğe koyarsanız, özellik göz ardı edilir ve değer serileştirilir ve serileştirilir. – Sven