项目需要反序列化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;
}
}
}