XMLオブジェクトの逆シリアル化に問題があります。生のXMLは、有効期限が切れていないcredits値5を示していますが、オブジェクトは値0で逆シリアル化されています。最も重要なことは、例外が発生せず、逆シリアル化プロセスが要素をスキップしているように見えることです。どんな助けでもいただければ幸いです。
生の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
}