Невозможно десериализовать объект из строки XML, содержащей префикс - PullRequest
0 голосов
/ 27 июня 2019

Это пример 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 был без префикса, вышеприведенный код работал

Ваша помощь высоко ценилась.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...