你好,我試圖獲取每個選項的值,如下所示。反序列化XML嵌套項
<Mailbox>
<Menus>
<Specs>
<Section>Message</Section>
<Options>
<Option>&New</Option>
<Option>&Inbox</Option>
<Option>&Outbox</Option>
<Option>&Sent Items</Option>
<Option>S&ettings</Option>
</Options>
</Specs>
</Menus>
</Mailbox>
但是當我運行下面的代碼:
[XmlRoot("Mailbox")]
public class Mailbox
{
[XmlArray(ElementName = "Menus"), XmlArrayItem("Specs")]
public Specs[] Menus { get; set; }
}
[XmlRoot("Specs")]
public class Specs
{
[XmlElement("Section")]
public string Section { get; set; }
[XmlArray(ElementName = "Options"), XmlArrayItem("Option")]
public Options[] OptionsList { get; set; }
}
[XmlRoot("Options")]
public class Options
{
[XmlElement("Option")]
public string Option { get; set; }
}
var deserializer = new XmlSerializer(typeof(Mailbox));
var textReader = new StreamReader(filename);
try
{
var storage = (Mailbox)deserializer.Deserialize(textReader);
for (int i = 0; i < storage.Menus.Length; i++)
{
MainMenu.Section = storage.Menus[i].Section;
MainMenu.Options.Add(storage.Menus[i].Options[i]);
}
}
catch (Exception e)
{
MessageBox.Show(e.Message);
}
textReader.Close();
我沒有得到的選項;他們都只是空出來。 OptionsList沒有正確顯示,我不知道爲什麼。
謝謝。
變化atrribute上述選項陣列從XmlArrayItem [選項] XmlArrayItem [選項]? – brumScouse
在嵌套模型上,xmlroot有點困惑,以爲只有一個,除非你編寫這些eleswhere。 – brumScouse