Привет, пытаюсь десериализировать xml, но столкнулся с проблемой, которая состоит в том, что после десериализации поле public
List Return { get; set; } остается пустым списком
Ниже предсавлен сам xml и модель с методом десериализации
<?xml version='1.0' encoding='UTF-8'?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<ns2:getServiceCost2Response xmlns:ns2="http://dpd.ru/ws/calculator/2012-03-20">
<return>
<serviceCode>MAX</serviceCode>
<serviceName>DPD MAX domestic</serviceName>
<cost>7752.0</cost>
<days>7</days>
</return>
<return>
<serviceCode>BZP</serviceCode>
<serviceName>DPD 18:00</serviceName>
<cost>9708.64</cost>
<days>5</days>
</return>
<return>
<serviceCode>CUR</serviceCode>
<serviceName>DPD CLASSIC</serviceName>
<cost>76640.55</cost>
<days>3</days>
</return>
<return>
<serviceCode>ECN</serviceCode>
<serviceName>DPD ECONOMY</serviceName>
<cost>7419.91</cost>
<days>6</days>
</return>
<return>
<serviceCode>PCL</serviceCode>
<serviceName>DPD OPTIMUM</serviceName>
<cost>8807.7</cost>
<days>5</days>
</return>
<return>
<serviceCode>MXO</serviceCode>
<serviceName>DPD Standard</serviceName>
<cost>8604.0</cost>
<days>4</days>
</return>
</ns2:getServiceCost2Response>
</S:Body>
</S:Envelope>
вот такая модель у меня получилась
[XmlRoot(ElementName="return")]
public class Return {
[XmlElement(ElementName="serviceCode")]
public string ServiceCode { get; set; }
[XmlElement(ElementName="serviceName")]
public string ServiceName { get; set; }
[XmlElement(ElementName="cost")]
public string Cost { get; set; }
[XmlElement(ElementName="days")]
public string Days { get; set; }
}
[XmlRoot(ElementName="getServiceCost2Response", Namespace="http://dpd.ru/ws/calculator/2012-03-20")]
public class GetServiceCost2Response {
[XmlElement(ElementName="return")]
public List<Return> Return { get; set; }
}
[XmlRoot(ElementName="Body", Namespace="http://schemas.xmlsoap.org/soap/envelope/")]
public class Body {
[XmlElement(ElementName="getServiceCost2Response", Namespace="http://dpd.ru/ws/calculator/2012-03-20")]
public GetServiceCost2Response GetServiceCost2Response { get; set; }
}
[XmlRoot(ElementName="Envelope", Namespace="http://schemas.xmlsoap.org/soap/envelope/")]
public class Envelope {
[XmlElement(ElementName="Body", Namespace="http://schemas.xmlsoap.org/soap/envelope/")]
public Body Body { get; set; }
}
Метод , с помощью которого я десериализрую объект
static Envelope EnvelopeDeserializer(string xml)
{
var xmlDoc = new XmlDocument();
xmlDoc.LoadXml(xml);
XmlSerializer serializer = new XmlSerializer(typeof(Envelope));
using StringReader reader = new StringReader(xmlDoc.InnerXml);
var mDeserialize = (Envelope)serializer.Deserialize(reader)!;
return mDeserialize;
}