1. 程式人生 > >序列化及反序列化XML物件,List IEnumerator

序列化及反序列化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;
            }
        }
    }