私はこのようなxmlを持っています
<root>
<bosses>
<boss>..some elements..</boss>
<boss>..some elements..</boss>
</bosses>
<workers>
<worker>..some elements..not the same as bosses</worker>
<worker>..some elements..</worker>
</workers>
</root>
そして、このようないくつかのクラス
public class Person
{
//properties common to both bosses and workers
}
public class Boss : Person
{
//some properties unique for bosses
}
public class Worker : Person
{
//some properties unique for workers
}
今、私がやりたいことは、xml を単一の .xml に逆シリアル化することですList<Person>
が、率直に言って、それを行う方法に困惑しています。
次のようにして、上司と従業員の個別のリストを取得できます
[XmlElement("bosses")]
public List<Boss> Bosses { get; set; }
[XmlElement("workers")]
public List<Worker> Workers { get; set; }
私はこれを行うことで単純にそれらを組み合わせてみました
[XmlElement("bosses")]
[XmlElement("workers")]
public List<Person> People { get; set; }
しかし、それは失敗します。推測しなければならない場合は、どのサブクラスPerson
をボスで使用し、どのサブクラスをワーカーで使用するかをデシリアライザーに指示する必要がありますが、その場合でも、それがどのように行われるかを見つけることができません。
だから、私を啓発してください!
編集(解決策):あなたは何を知っていますか、質問をすることはいくつかの新しい考えを引き起こし、私は解決策を理解することができました. 他の誰かが同様の問題を探している場合に備えて、ここに投稿します。
[XmlElement(ElementName = "bosses", Type = typeof(Boss))]
[XmlElement(ElementName = "workers", Type = typeof(Worker))]
public List<Person> People { get; set; }