मुझे एक साधारण वर्ग मिला है जो संग्रह से विरासत में मिलता है और कुछ गुण जोड़ता है। मुझे इस कक्षा को एक्सएमएल में क्रमबद्ध करने की जरूरत है, लेकिन XMLSerializer मेरे अतिरिक्त गुणों को अनदेखा करता है।Xml एक विशेषता के साथ एक कस्टम संग्रह को क्रमबद्ध करें
मुझे लगता है कि यह विशेष उपचार के कारण है कि XMLSerializer आईसीओलेक्शन और आईनेमरेबल ऑब्जेक्ट्स देता है। इस के आसपास सबसे अच्छा तरीका क्या है?
using System.Collections.ObjectModel;
using System.IO;
using System.Xml.Serialization;
namespace SerialiseCollection
{
class Program
{
static void Main(string[] args)
{
var c = new MyCollection();
c.Add("Hello");
c.Add("Goodbye");
var serializer = new XmlSerializer(typeof(MyCollection));
using (var writer = new StreamWriter("test.xml"))
serializer.Serialize(writer, c);
}
}
[XmlRoot("MyCollection")]
public class MyCollection : Collection<string>
{
[XmlAttribute()]
public string MyAttribute { get; set; }
public MyCollection()
{
this.MyAttribute = "SerializeThis";
}
}
}
यह (ध्यान दें MyAttribute MyCollection तत्व में याद आ रही है) निम्न XML आउटपुट:
<?xml version="1.0" encoding="utf-8"?>
<MyCollection xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<string>Hello</string>
<string>Goodbye</string>
</MyCollection>
मैं क्या चाहता हूँ
<MyCollection MyAttribute="SerializeThis"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<string>Hello</string>
<string>Goodbye</string>
</MyCollection>
है
यहां कुछ नमूना कोड है
कोई विचार? बेहतर आसान है। धन्यवाद।
मेरा समाधान देखें, आपको यह दिलचस्प लगेगा। – toddmo