空元素上的Xml反序列化失败

Caf*_*eek 5 c# xml serialization exception

我有一个看起来相似的Xml文档

<Reports xmlns="">
  <Report>
    <ReportID>1</ReportID>
    <ParameterTemplate />
  </Report>
</Reports>
Run Code Online (Sandbox Code Playgroud)

它无法序列化到此对象

[XmlType(TypeName = "Report")]
public class Report
{
    [XmlElement("ReportID")]
    public int ID { get; set; }

    [XmlElement("ParameterTemplate")]
    public XElement ParameterTemplate { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

它失败了,因为空的ParameterTemplate元素,因为如果它包含子元素,它反序列化很好.

我怎样才能让它发挥作用?

这是我的反序列化代码

var serializer = new XmlSerializer(typeof(Report));
return (Report)serializer.Deserialize(source.CreateReader());
Run Code Online (Sandbox Code Playgroud)

例外是

XmlReader必须位于Element类型的节点上,而不是EndElement类型的节点.

如何使用现有的xml进行反序列化?

谢谢-c

Wim*_*dse 1

看起来XElement- 如果不为null - 的内容不能是空 XML 元素。换句话说,您将无法从类的内存表示/实例序列化示例中的XMLReport