Ich habe ein Problem, wenn ich XML-Datei mit XmlSerializer lesen möchte. Meine XML-Datei wie folgt:So lesen Sie XML-Datei mit XmlSerializer C#
<?xml version="1.0" encoding="utf-8"?>
<contents>
<section id="1">
<element1>2</element1>
<element2>1</element2>
<idx>1</idx>
<idx>2</idx>
<idx>3</idx>
</section>
<section id="2">
<element1>2</element1>
<element2>1</element2>
</section>
<section id="3"/>
</contents>
Hier sind die Klassen:
[Serializable()]
public class section
{
[XmlAttribute("id")]
public string id { get; set; }
[XmlElement("element1")]
public int element1 { get; set; }
[XmlElement("element2")]
public int element2 { get; set; }
[XmlElement("idx")]
public int[] idx { get; set; }
}
[Serializable()]
[XmlRoot("contents")]
public class contents
{
[XmlArray("section")]
[XmlArrayItem("section", typeof(section))]
public section[] section { get; set; }
}
Die Deserialize Funktion:
XmlSerializer serializer = new XmlSerializer(typeof(contents));
FileStream fs = new FileStream(path, FileMode.Open);
XmlReader reader = XmlReader.Create(fs);
contents i;
i = (contents)serializer.Deserialize(reader);
fs.Close();
foreach (section p in i.section)
{
Console.WriteLine(p.element1);
}
Warum es nicht funktioniert? Ich hatte Referenz https://msdn.microsoft.com/en-us/library/system.xml.serialization.xmlserializer(v=vs.110).aspx, aber es scheint nicht sinnvoll. Bitte helfen Sie mir !!!!!
Du hast einige gute Informationen zur Verfügung gestellt, aber das scheint ein Duplikat zu sein. In jedem Fall ist es in der Regel eine gute Idee zu spezifizieren, was speziell nicht funktioniert - eine Ausnahme in der Serialisierung? Mitglieder nicht wie erwartet initialisiert? Meine Vermutung ist, dass Sie Probleme mit den Arrays haben, da sie nicht richtig eingerichtet sind. Siehe die verknüpfte Frage. –