C#/.NET を使用して、次のような XML ファイルを逆シリアル化しています。
<?xml version="1.0" encoding="utf-8" ?>
<Books>
<Book
Title="Animal Farm"
>
<Thing1>""</Thing1>
<Thing2>""</Thing2>
<Thing3>""</Thing3>
...
<ThingN>""</ThingN>
</Book>
... More Book nodes ...
</Books>
デシリアライズされた XML の私のクラスは次のようになります。
[XmlRoot("Books")]
public class BookList
{
// Other code removed for compactness.
[XmlElement("Book")]
public List<Book> Books { get; set; }
}
public class Book
{
// Other code removed for compactness.
[XmlAttribute("Title")]
public string Title { get; set; }
[XmlAnyElement()]
public List<XmlElement> ThingElements { get; set; }
public List<Thing> Things { get; set; }
}
public class Thing
{
public string Name { get; set; }
public string Value { get; set; }
}
逆シリアル化するとき、Book 要素 (<Thing1> から <ThingN> まで) のすべての子ノードを、Book の Things コレクションに逆シリアル化する必要があります。ただし、それを達成する方法がわかりません。現在、モノのノードを ThingElements コレクションに (XmlAnyElement 経由で) 格納するのに苦労しています。
異種の子ノードを (非 XmlElements の) コレクションに逆シリアル化する方法はありますか?