1. 程式人生 > >asp.net序列化與反序列化

asp.net序列化與反序列化

  反序列化例子:  Qresponse = (QualityResponse)Deserialize(typeof(QualityResponse), xml);

序列化是將物件狀態轉換為可保持或傳輸的格式的過程,比如轉化為二進位制、xml、json等的過程。

與序列化相對的是反序列化,它將流轉換為物件,也就是將在序列化過程中所生成的二進位制串、xml、json等轉換成資料結構或者物件的過程

物件與XML轉化

 /// <summary>  
        /// 反序列化  
        /// </summary>  
        /// <param name="type">型別</param>  
        /// <param name="xml">XML字串</param>  

        /// <returns></returns> 

        public object Deserialize(Type type, string xml)
        {
            try
            {
                using (StringReader sr = new StringReader(xml))
                {
                    XmlSerializer xmldes = new XmlSerializer(type);
                    return xmldes.Deserialize(sr);
                }
            }
            catch (Exception e)
            {

                return e.Message;
            }

        }

        /// <summary>  
        /// 序列化  
        /// </summary>  
        /// <param name="type">型別</param>  
        /// <param name="xml">XML字串</param>  
        /// <returns></returns>  
        public string Serialize(object obj)
        {
            XmlSerializer serializer = new XmlSerializer(obj.GetType());
            StringBuilder sbXml = new StringBuilder();
            using (StringWriter writer = new StringWriter(sbXml))
            {
                serializer.Serialize(writer, obj);
            }
            return sbXml.ToString();
        }