【发布时间】:2021-08-17 15:21:35
【问题描述】:
我正在开发一个使用 WPF 的项目,并希望反序列化具有如下结构的 XML 文件:
<SoftwareUpdate>
<Einträge>
<Eintrag>
<Device></Device>
<language1>
<Information>
</language1>
<language2>
<Information>
</language2>
</Eintrag>
<Eintrag>
<Device></Device>
<language1>
<Information>
</language1>
<language2>
<Information>
</language2>
</Eintrag>
<Eintrag>
<Device></Device>
<language1>
<Information>
</language1>
<language2>
<Information>
</language2>
</Eintrag>
<Eintrag>
<Device></Device>
<language1>
<Information>
</language1>
<language2>
<Information>
</language2>
</Eintrag>
<Einträge>
<SoftwareUpdate>
这是我的课
public class SoftwareUpdate
{
[XmlElement("Einträge")]
public Einträge einträge { get; set; }
}
public class Einträge
{
[XmlArray("Eintrag")]
[XmlArrayItem("Eintrage", typeof(Eintrag))]
public Eintrag[] eintrag { get; set; }
}
public class Eintrag
{
public String Device { get; set; }
public Language language1 { get; set; }
public Language language2 { get; set; }
}
public class Language
{
public String Information { get; set; }
}
这是我的代码
SoftwareUpdate softwareUpdate = null;
string path = @"C:\XML-File\TestFile.xml";
XmlSerializer serializer = new XmlSerializer(typeof(SoftwareUpdate));
StreamReader reader = new StreamReader(path);
softwareUpdate = (SoftwareUpdate)serializer.Deserialize(reader);
Trace.WriteLine(softwareUpdate.einträge.Eintrag[1].DeviceType);
reader.Close();
但我在
得到IndexOutOfRangeException
Trace.WriteLine(softwareUpdate.einträge.Eintrag[1].DeviceType);
但是数组Eintrag 应该有四个元素。所以问题可能出在代码或类的某个地方,但我看不到。
【问题讨论】:
-
ä是 XML 元素名称中的有效字符吗? -
您的示例 XML 无效,您的示例代码甚至无法编译...
标签: c# wpf deserialization indexoutofrangeexception