ile bir özellik geçersiz kılma.Bir özelliğin seri davranışını değiştirmek için bir yol bulmaya çalışıyorum bir öznitelik
[Serializable]
public class Record
{
public DateTime LastUpdated {get; set; }
// other useful properties ...
}
public class EmployeeRecord : Record
{
public string EmployeeName {get; set; }
// other useful properties ...
}
Şimdi EmployeeRecord seri hale getirmek istiyorum:
Böyle bir durum var düşünelim. LastUpdated özelliğinin Record sınıfından serileştirilmesini istemiyorum. (Kayıtları serileştirdiğimde LastUpdated'in seri hale getirilmesini istiyorum).
Önce XmlIgnore niteliğini yeni anahtar kelime kullanarak ve sonra ekleyerek LastUpdated özelliğini gizleme çalıştı:public class EmployeeRecord : Record
{
public string EmployeeName {get; set; }
[XmlIgnore]
public new DateTime LastUpdated {get; set; }
// other useful properties ...
}
Ama bu işe yaramadı. Sonra niteliğini tutarak baz sanal LastUpdated yapma ve bunu geçersiz kılma çalıştı:
[Serializable]
public class Record
{
public virtual DateTime LastUpdated {get; set; }
// other useful properties ...
}
public class EmployeeRecord : Record
{
public string EmployeeName {get; set; }
[XmlIgnore]
public override DateTime LastUpdated {get; set; }
// other useful properties ...
}
Bu da işe yaramadı. Her iki girişimde de, LastUpdated, XmlIgnore özniteliğini göz ardı etti ve serileştirme işini mutlu bir şekilde sürdürdü.
gerçekleşmesini yapmaya çalıştığım şey yapmak için bir yolu var mı?
Nasıl serileştiriyorsunuz? Çünkü ikili serileştirme kullanıyorsanız, XmlIgnore özniteliği çok iyi olmaz. –
XmlSerializer kullanıyorum –
Ikili serileştirme için NonSerialized özniteliği kullanırsınız. – snarf