无法从包含前缀的xml字符串反序列化为对象

时间:2019-06-27 09:42:58

标签: xml xmldocument

这是示例xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<xsd_1:Message xmlns:xsd_1="http://www.ncpdp.org/schema/SCRIPT" version="010" release="006" HighestVersionSupported="010">
   <xsd_1:Patient>
      <xsd_1:FirstName>Dante</xsd_1:FirstName>
   </xsd_1:Patient>
</xsd_1:Message>

这是课程文件:

[XmlRoot(ElementName = "Patient", Namespace = "http://www.ncpdp.org/schema/SCRIPT")]
public class Patient {

    [XmlElement(ElementName = "FirstName", Namespace = "xsd_1")]
    public string FirstName {
        get;
        set;
    }

}

这是反序列化的代码:

XmlDocument doc = new XmlDocument();
doc.LoadXml(request.Input);

XmlSerializer serializer = new XmlSerializer(typeof(WebApiDemo.Models.Patient), "xsd_1");

using(TextReader reader = new StringReader(doc.DocumentElement.ChildNodes[0].OuterXml)) {
    var patient = (WebApiDemo.Models.Patient) serializer.Deserialize(reader);

}

当我看到“ FirstName Inside Person”对象时,它为null。

在xml没有前缀的早期,上面的代码起作用了

非常感谢您的帮助。

0 个答案:

没有答案