1

在这里遇到一点问题。我有一些从 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 属于基类而不是派生类型。

我在这里做错了什么?

4

0 回答 0