我是c#的全新品牌(第2天),所以如果我的術語有點偏離,我會提前道歉。XML序列化 - 建立某種類型的子元素列表
考慮下面的XML和類模型:
<Page label="Page 1.1">
<Group label="Group 1.1.1"></Group>
<Group label="Group 1.1.2"></Group>
<Text label="Text 1.1.1"></Text>
<Text label="Text 1.1.2"></Text>
</Page>
public class AbstractElementModel
{
[XmlAttributeAttribute()]
public string label;
}
[Serializable]
public class Page:AbstractElementModel
{
[XmlArrayItem(typeof(Group)),
XmlArrayItem(typeof(Text))]
public AbstractElementModel[] content;
}
(集團和文本模式未顯示,在這個例子中,他們正在擴大AbstractElementModel空白班)
我想能夠將組或文本的任何實例推入內容列表。但是,當XML文檔被反序列化時,內容爲空。我也注意到,如果我結構XML如下工作:
<Page label="Page 1.1">
<content>
<Group label="Group 1.1.1"></Group>
<Group label="Group 1.1.2"></Group>
<Text label="Text 1.1.1"></Text>
<Text label="Text 1.1.2"></Text>
</content>
</Page>
不過,我需要能夠deseralize XML結構如圖所示的第一個例子。
實現這個目標的最佳方式是什麼?
謝謝你的時間!
編輯
更新XML結構使問題更加清晰。
你沒有提到的一件事是有多少Group和Text節點可以是頁面的子節點。你的例子意味着它們只能出現一次。 – Jay
是的好點。我更新了原始帖子以包含每種類型的多個元素。 – drkstr