这是示例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没有前缀的早期,上面的代码起作用了
非常感谢您的帮助。