Wie Wurzelknotennamen setzen, wenn ein Array XmlSerializing?
-
06-07-2019 - |
Frage
Ich habe ein Array von Objekten, die ich als XML serialisiert werden soll. Diese Aufgaben werden mit Anmerkungen versehen, um XML-Knotennamen festgelegt, aber ich frage mich, wie der Name des XML-Root-Knoten zu setzen.
Der Code sieht wie folgt aus:
// 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();
Die Ausgabe sieht wie folgt aus:
<?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 zu umbenannt wurde Ort mit einer XmlElement Anmerkung, aber wie kann ich den Namen des Root-Knotens der umbenennen < strong> 'ArrayOfPlace' Knoten?
Lösung
Versuchen Sie folgendes:
XmlSerializer ser = new XmlSerializer(
typeof(ListItem[]),
new XmlRootAttribute("CustomRootName"));
Andere Tipps
Mit dem XmlRoot Attribute.
gefunden Nur eine Lösung selbst auch.
Es ist möglich, den Namen des Root-Knotens zu setzen, wenn XmlSerializer instanziieren. Siehe unten.
XmlSerializer ser = new XmlSerializer(typeof(ListItem[]), new XmlRootAttribute("AllPlaces"));
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow