У меня есть следующий код, который должен десериализовать строку XML в класс, который содержит большинство элементов в XML-файле, возможно, у них не все, что отлично, они должны просто принять NULL.C# XML Сериализация Не работает
Когда я запускаю следующий код, используя XML ниже, он оставляет каждое значение как NULL.
Все указатели на где я буду неправильно
Thanks
ServiceResponse ReturnVal = new ServiceResponse();
try
{
XmlSerializer serializer = new XmlSerializer(typeof(ServiceResponse));
StringReader sr = new StringReader(XMLResponse);
NamespaceIgnorantXmlTextReader XMLWithoutNamespace = new NamespaceIgnorantXmlTextReader(sr);
ReturnVal = (ServiceResponse)serializer.Deserialize(XMLWithoutNamespace);
}
catch (Exception ex)
{
throw ex;
}
[XmlRoot("ServiceResponse")]
public class ServiceResponse
{
public string RequestType { get; set; }
public string ApplicationSender { get; set; }
public string WorkstationID { get; set; }
public string POPID { get; set; }
public string RequestID { get; set; }
public string ReferenceNumber { get; set; }
public string ProtocolVersion { get; set; }
public string DeviceType { get; set; }
public string SWChecksum { get; set; }
public string CommunicationProtocOl { get; set; }
public string Model { get; set; }
public string ApplicationSoftwareVersion { get; set; }
public string Manufacturer_Id { get; set; }
public string OverallResult { get; set; }
}
public class NamespaceIgnorantXmlTextReader : XmlTextReader
{
public NamespaceIgnorantXmlTextReader(System.IO.TextReader reader) : base(reader) { }
public override string NamespaceURI
{
get { return ""; }
}
}
XMLResponse будет равна слишком следующее:
<?xml version="1.0" encoding="UTF-8" standalone="no"?><ServiceResponse RequestType="Login" ApplicationSender="QWERTY" WorkstationID="1" RequestID="1254" ProtocolVersion="12" DeviceType="1" SWChecksum="1" CommunicationProtocol="11" Model="1" ApplicatioSoftwareVersion="010" Manufacturer_Id="0" OverallResult="Success" xmlns="http://www.nrf-arts.org/IXRetail/namespace" xmlns:IFSF="http://www.ifsf.org/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.nrf-arts.org/IXRetail/namespace C:\Schema\ServiceResponse.xsd" />
Необходимо идентифицировать свои свойства как атрибуты, иначе он попытается прочитать их как узлы. См. Https://msdn.microsoft.com/en-us/library/system.xml.serialization.xmlattributes.xmlattribute(v=vs.110).aspx –
Спасибо, Рон, только что понял, что сейчас –