序列化及反序列化XML物件,List IEnumerator
專案需要反序列化List生成的類,度了N多方法後,發現這個方法可用。
[Serializable]//宣告該物件可以被序列化
public class taobaoDeserialDetial
{
[XmlElement("adjust_fee")]//宣告做為元素被序列化
public string adjust_fee {get;set;}
[XmlElement("buyer_rate")]
public string buyer_rate {get;set;}
}
[Serializable]
public class orders
{
[XmlElement("order")]//宣告這個非常有用,開始就是因為沒有宣告才導致不能反序列化成功的。在做淘寶專案時,這個序列化了5個層次。
public List<taobaoDeserialDetial> order { get; set; }
//使用GetEnumerator,不要宣告繼承IEnumerable<>.返回值是IEnumerator.IEnumerator用於返回類物件。IEnumerable用於返回類的成員。使用時要注意。
public System.Collections.IEnumerator GetEnumerator()
{
foreach (taobaoDeserialDetial item in order)
{
yield return item;
}
}
}
[Serializable]
public class trade
{
[XmlElement("tid")]
public string tid { get; set; }
[XmlElement("orders")]
public List<orders> orders { get; set; }
public System.Collections.IEnumerator GetEnumerator()
{
foreach (orders item in orders)
{
yield return item;
}
}
}