1

ここで少し問題が発生します。このようなサードパーティのサービスから返された xml があります (簡略化)。

<Root>
    <Response>
        <Record></Record>   
    </Response>
    <Response>
        <Record></Record>   
    </Response>
</Root>

各レコードは異なるタイプのオブジェクトになる可能性があり、1 つの xml メッセージが複数の応答を持つ可能性があります。

私のクラスは次のようになります

public class Response
{
    [XmlElement(typeof(DerivedRecord1))]
    [XmlElement(typeof(DerivedRecord2))]
    public BaseRecord Record { get; set;}
}

public class BaseRecord { }
public class DerivedRecord1 : BaseRecord { }
public class DerivedRecord2 : BaseRecord { }

逆シリアル化された後、Record オブジェクトを見ると、両方の応答に対して null として返されます。

ここで、プロパティの XmlElement 属性の代わりに基本クラスで XmlInclude 要素を使用すると、Record は派生型ではなく基本クラスになります。

ここで何が間違っていますか?

4

0 に答える 0