我的XML:
<?xml version="1.0" encoding="UTF-8"?>
<response id="41cc788a-bc22-4ce0-8e1c-83bf49bbffed">
<message>Successfully processed the request</message>
<payload>Alive</payload>
</response>
我的课程:
[XmlRoot("response")]
[Serializable]
public abstract class ESBResponseBase<T>
{
[XmlAttribute]
public string Id { get; set; }
public string Message { get; set; }
public T Payload { get; set; }
}
[XmlRoot("response")]
[Serializable]
public class ESBResponseIsAlive : ESBResponseBase<string>
{
}
请注意,如果我在子类上没有这些类,则会抛出异常,因此似乎继承不适用于这些类。
我的序列化代码:
XmlSerializer serializer = new XmlSerializer(typeof (ESBResponseIsAlive));
var esbResponseIsAlive = (ESBResponseIsAlive) serializer.Deserialize(result);
然而,当我序列化我的对象属性时为null。
我认为这很可能是用于序列化的类中的继承问题。可以简单地将基类更改为实际的具体类并使用Generic,但我更喜欢强类型。
答案 0 :(得分:0)
事实证明,XMLSerializer区分大小写。我的班级现在看起来像以下,它的工作原理。
[XmlAttribute("id")]
public string Id { get; set; }
[XmlElement("message")]
public string Message { get; set; }
[XmlElement("payload")]
public T Payload { get; set; }