मैं एक xml फ़ाइल इस तरह कुछ हद तक देख राशि पर IXmlSerializable को लागू:एक संग्रह वस्तु
<xml>
<A>value</A>
<B>value</B>
<listitems>
<item>
<C>value</C>
<D>value</D>
</item>
</listitems>
</xml>
और मैं इस एक्सएमएल का प्रतिनिधित्व करने के लिए एक दो वस्तुओं है:
class XmlObject
{
public string A { get; set; }
public string B { get; set; }
List<Item> listitems { get; set; }
}
class Item : IXmlSerializable
{
public string C { get; set; }
public string D { get; set; }
//Implemented IXmlSerializeable read/write
public void ReadXml(System.Xml.XmlReader reader)
{
this.C = reader.ReadElementString();
this.D = reader.ReadElementString();
}
public void WriteXml(System.Xml.XmlWriter writer)
{
writer.WriteElementString("C", this.C);
writer.WriteElementString("D", this.D);
}
}
मैं XmlSerializer का उपयोग क्रमानुसार करने/फाइल करने के लिए XmlObject deserialize।
समस्या यह है कि जब मैंने अपने "सब-ऑब्जेक्ट" आइटम पर कस्टम IXmlSerializable फ़ंक्शंस को लागू किया था, तो मुझे फ़ाइल को deserializing करते समय हमेशा मेरे XmlObject.listitems संग्रह में केवल एक आइटम (पहला) मिलता है। यदि मैं इसे हटा देता हूं: IXmlSerializable सब कुछ अपेक्षित के रूप में काम करता है।
मैं क्या गलत करता हूं?
संपादित करें: मैंने IXmlSerializable.GetSchema लागू किया है और मुझे कुछ कस्टम मूल्य परिवर्तन करने के लिए अपने "बच्चे-ऑब्जेक्ट" पर IXmlSerializable का उपयोग करने की आवश्यकता है।
आपको बहुत बहुत धन्यवाद। –