在这里遇到一点问题。我有一些从 3rd 方服务返回的 xml,看起来像这样(简化)
<Root>
<Response>
<Record></Record>
</Response>
<Response>
<Record></Record>
</Response>
</Root>
每条记录都有可能成为不同类型的对象,一条 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。
现在,当我在基类上使用 XmlInclude 元素而不是属性上的 XmlElement 属性时,Record 属于基类而不是派生类型。
我在这里做错了什么?