ここで少し問題が発生します。このようなサードパーティのサービスから返された 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 は派生型ではなく基本クラスになります。
ここで何が間違っていますか?