我想通過使用XmlSerializer讀取XML文件時遇到問題。 喜歡跟着我的xml文件:如何使用XmlSerializer讀取XML文件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>
這裏是類:
[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; }
}
的反序列化功能:
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);
}
爲什麼它不工作? 我參考了https://msdn.microsoft.com/en-us/library/system.xml.serialization.xmlserializer(v=vs.110).aspx,但它似乎沒有用。 請幫幫我!!!!!
你提供了一些很好的信息,但是這似乎是重複的。在任何一種情況下,指定哪些內容不起作用通常是一個好主意 - 序列化中的例外情況?成員未按預期初始化?我的猜測是你有數組問題,因爲它們設置不正確。看到鏈接的問題。 –