1

私はこのような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; }
4

1 に答える 1