У меня возникла проблема десериализации объекта XML. Необработанный XML показывает значение nonexpiredcredits, равное 5, но объект десериализуется со значением 0. Наиболее существенно, исключение не попадает, процесс десериализации просто пропускает элемент. Любая помощь будет оценена по достоинству.Значение игнорируется при десериализации объекта XML
Необработанные XML:
<?xml version="1.0" encoding="ISO-8859-1"?>
<theObject>
<mobilecredits>
<nonexpirecredits>5</nonexpirecredits>
</mobilecredits>
</theObject>
Объект:
[Serializable()]
[XmlRoot("theObject")]
public class mobilecreditsWrapper
{
[XmlElement("mobilecredits")]
public mobilecredits credits { get; set; }
}
[Serializable()]
public class mobilecredits
{
[XmlElement("nonexpiredcredits")]
public int nonexpiredcredits { get; set; }
}
десериализации сниппет:
XmlSerializer s = new XmlSerializer(typeof(T));
//T is set to mobilecreditsWrapper in the generic function this code snippet is found in
var sr = new StringReader(res);
try
{
obj = (T)s.Deserialize(sr);
}
catch (Exception ex)
{
//this is not hit
}
sidenote: если 'res' является' потоком', вы можете просто передать его в 'XmlSerializer' (нет необходимости вставлять его в' StringReader'). – Default
Это полезно для получения необработанного XML. –
Я не получаю нисходящий знак? У меня была четко определенная проблема, я попросил конкретную помощь. Давайте не будем переводить Stack Overflow в стереотипный форум Linux, где просить о помощи сродни признанию проказы. –