【发布时间】:2017-05-22 04:12:04
【问题描述】:
我有一个具有属性主体的通用基类和另一个具有属性标头的派生类,当我将派生类反序列化为 xml 时,它首先将主体作为第一个元素,然后是标头(按字母顺序反序列化),但我首先要标头然后是身体。我已经尝试过 XmlElement 的 order 属性,但它不起作用
示例类:
[XmlRoot("BaseClass", Namespace = "http://schemas.xmlsoap.org/soap/envelope/")]
public class BaseClass<T>
{
public T Body { get; set; }
}
[XmlRoot("DerivedClass", Namespace = "http://schemas.xmlsoap.org/soap/envelope/")]
public class DerivedClass<THeader, TBody> : BaseClass<TBody>
where THeader : IEnvelopeHeader where TBody : class, IEnvelopeBody, new()
{
public THeader Header { get; set; }
}
我看到了一个解决方案,它说将基类中的属性设为抽象并在派生类中覆盖,然后决定顺序,但我不能采用这个解决方案,因为我的基类也用于其他一些项目。
【问题讨论】:
-
Yeldar 感谢您的回复,但似乎这种方法对我不起作用。
标签: c# xml deserialization xml-serialization xml-deserialization