का उपयोग करते समय व्युत्पन्न कक्षाओं पर गुणों को अनदेखा करना मेरे पास वर्चुअल प्रॉपर्टी के साथ एक बेस क्लास है और व्युत्पन्न प्रकार है जो वर्चुअल प्रॉपर्टी को ओवरराइड करता है। प्रकार को एक्सएमएल में क्रमबद्ध किया जा सकता है। मैं जो करने की कोशिश कर रहा हूं वह वस्तु संपत्ति की सूची को जारी रखने के लिए नहीं है जब ऑब्जेक्ट व्युत्पन्न प्रकार का होता है। इसे प्राप्त करने के लिए व्युत्पन्न वर्ग [XmlIgnore]
विशेषता के साथ ओवरराइड संपत्ति को सजाने के लिए तैयार करता है। बेस क्लास में वर्चुअल प्रॉपर्टी XmlIgnore
विशेषता लागू नहीं करती है। कुछ कारणों से वस्तुएं व्युत्पन्न प्रकार (DynamicCart
) की वस्तु होने पर भी हर चीज क्रमबद्ध होती हैं।.NET के XmlSerializer
जब मैं बेस क्लास में वर्चुअल प्रॉपर्टी में XmlIgnore
विशेषता लागू करता हूं तो सूची को फ़ाइल में क्रमबद्ध नहीं किया जाता है।
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>);
}
ऐसा लगता है कि आपने स्वयं को प्रश्न का उत्तर दिया है। –
मैंने अपने काम का जवाब नहीं दिया है, लेकिन मेरे प्रश्न का उत्तर नहीं है, XMLSerializer क्यों सीरियड क्लास में [XMLIgnore] विशेषता का सम्मान नहीं करता है और जब मैं डायनामिककार्ट को क्रमबद्ध करता हूं तो सूची ऑब्जेक्ट शामिल करता है? –
Ken