我有一个看起来也很相似的 Xml 文档
<Reports xmlns="">
<Report>
<ReportID>1</ReportID>
<ParameterTemplate />
</Report>
</Reports>
序列化到这个对象失败
[XmlType(TypeName = "Report")]
public class Report
{
[XmlElement("ReportID")]
public int ID { get; set; }
[XmlElement("ParameterTemplate")]
public XElement ParameterTemplate { get; set; }
}
它失败是因为空的 ParameterTemplate 元素,因为如果它包含子元素,它可以很好地反序列化。
我怎样才能让它工作?
这是我的反序列化代码
var serializer = new XmlSerializer(typeof(Report));
return (Report)serializer.Deserialize(source.CreateReader());
异常(exception)情况是
The XmlReader must be on a node of type Element instead of a node of type EndElement.
我怎样才能用现有的 xml 反序列化它?
谢谢 -c
最佳答案
看起来 XElement
的内容 - 如果不是 null - 不能是空的 XML 元素。换句话说,您将无法从 Report
类的内存表示/实例中序列化示例中的那个 XML。
关于c# - Xml 反序列化在空元素上失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2201358/