'u kullanırken türetilmiş sınıflardaki özellikleri göz ardı etme Sanal özelliği ve sanal özelliği geçersiz kılan türetilmiş bir türe sahip bir temel sınıfım var. Bu tip XML'e serileştirilebilir. Yapmaya çalıştığım şey, nesne türetilmiş türdeyken öğe listesi özelliğini sürdürmemek. Bunu elde etmek için, türetilmiş sınıf [XmlIgnore]
özniteliğiyle geçersiz kılınan özelliği süslemektedir. Temel sınıftaki sanal özellik XmlIgnore
özniteliğini uygulamıyor. Nesnelerin listesi türetilmiş türden (DynamicCart
) olsa bile, bazı nedenlerden dolayı Dizine Eklenir..NET'in XmlSerializer
Temel sınıftaki sanal özelliğe XmlIgnore
özniteliğini uyguladığımda, liste dosyaya serileştirilmez.
public class ShoppingCart
{
public virtual List<items> Items{get; set;}
//and other properties
public void SerializeToXML (string filePath)
{
var xmlSerializer = new XmlSerializer(this.GetType());
textWriter = new System.IO.StreamWriter(filePath);
xmlSerializer.Serialize(textWriter, this);
textWriter.Flush();
textWriter.Close();
}
}
//A cart that is populated by algo based on parameters supplied by user. I have no need to
//persist the actual items across sessions.
class DynamicCart: ShoppingCart
{
[XmlIgnore]
public override List<items>{get;set;}
//and other properties
}
class Shop
{
ShoppingCart cart = new DynamicCart();
PopulateCart(cart);
cart.serializeToXML(<PATH TO FILE>);
}
Bu soruya kendiniz cevap vermişsiniz. –
10 Sorunuma bir yanıt verdim ancak bir yanıt vermedim, XMLSerializer neden serive sınıfındaki [XMLIgnore] özniteliğini onurlandırmıyor ve DynamicCart'ı serileştirdiğimde Liste nesnesini içeriyor? –
Ken