मेरे पास ऑब्जेक्ट्स की एक सरणी है जिसे मैं एक्सएमएल के रूप में क्रमबद्ध करना चाहता हूं। इन ऑब्जेक्ट्स को एक्सएमएल नोड नाम सेट करने के लिए एनोटेट किया गया है लेकिन मैं सोच रहा था कि एक्सएमएल रूट नोड का नाम कैसे सेट करें।XmlSerializing एक सरणी रूट रूट नोड नाम कैसे सेट करें?
कोड इस तरह दिखता है:
// create list of items
List<ListItem> list = new List<ListItem>();
list.Add(new ListItem("A1", new Location(1, 2)));
list.Add(new ListItem("A2", new Location(2, 3)));
list.Add(new ListItem("A3", new Location(3, 4)));
list.Add(new ListItem("A4<&xyz>", new Location()));
// serialise
XmlSerializer ser = new XmlSerializer(typeof(ListItem[]));
FileStream os = new FileStream(@"d:\temp\seri.xml", FileMode.Create);
ser.Serialize(os, list.ToArray());
os.Close();
उत्पादन इस तरह दिखता है:
<?xml version="1.0"?>
<ArrayOfPlace xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Place>
<Placename>A1</Placename>
<Location>
<Lat>1</Lat>
<Long>2</Long>
</Location>
</Place>
<Place>
...
ListItem को प्लेस नाम दिया गया है एक XmlElement एनोटेशन का उपयोग कर, लेकिन कैसे कर सकते हैं मैंने 'ArrayOfPlace' नोड का नाम बदलने के लिए रूट नोड का नाम सेट किया है?
ध्यान दें कि बाद में पुन: उपयोग के लिए धारावाहिक को कैश करना आवश्यक है, अन्यथा एक गंभीर स्मृति रिसाव होगा। देखें [StreamReader और XmlSerializer का उपयोग कर मेमोरी लीक] (https://stackoverflow.com/questions/23897145/memory-leak-using-streamreader-and-xmlserializer/) – dbc