私は新しい(2日目)をC#にするので、私の用語がちょっとしたものであれば事前にお詫びします。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文書がデシリアライズされると、コンテンツはnullになります。私は次のように私は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>
はしかし、私は最初の例に示すように、XMLの構造をdeseralizeできるようにする必要があります。
これを実現する最善の方法は何ですか?
ありがとうございました!問題をより明確にするためにXML構造を更新しました
編集
。
あなたが言及していないことの1つは、いくつのグループノードとテキストノードがページの子になれるかです。あなたの例は、それらが一度だけ起こることを意味します。 – Jay
はい良い点。元の投稿を更新して、各タイプの複数の要素を含むようにしました。 – drkstr