C#的StringWriter,XmlSerializer将对象等序列化为Xml字符串

主要方法:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.IO; 
using System.Xml; 
using System.Xml.Serialization; 
  
namespace ConsoleApplication2 
    public class SimpleSerializer 
    
        /**//// <summary> 
        /// 序列化对象 
        /// </summary> 
        /// <typeparam name=\"T\">对象类型</typeparam> 
        /// <param name=\"t\">对象</param> 
        /// <returns></returns> 
        public static string Serialize<T>(T t) { 
            using (StringWriter sw = new StringWriter()) { 
                XmlSerializer xz = new XmlSerializer(t.GetType()); 
                xz.Serialize(sw, t); 
                return sw.ToString(); 
            
        
           
        /**//// <summary> 
        /// 反序列化为对象 
        /// </summary> 
        /// <param name=\"type\">对象类型</param> 
        /// <param name=\"s\">对象序列化后的Xml字符串</param> 
        /// <returns></returns> 
        public static object Deserialize(Type type, string s) { 
            using(StringReader sr = new StringReader(s)) { [Page]
                XmlSerializer xz = new XmlSerializer(type); 
                return xz.Deserialize(sr); 
            
        
    
}

定义一个用于测试的实体类: 

public class TestClass
   {
       public string MyFeild
       {
           get;
           set;
       }
   }

测试:

 

static void Main(string[] args)
       {
           TestClass x = new TestClass();
           x.MyFeild = "测试";
 
           using (StringWriter sw = new StringWriter())
           {
               XmlSerializer xz = new XmlSerializer(x.GetType());
               xz.Serialize(sw, x);
               Console.WriteLine(sw.ToString());
               using (StringReader sr = new StringReader(sw.ToString()))
               {
                   Console.Write(((TestClass)xz.Deserialize(sr)).MyFeild);
               }
               Console.Read();
           }
 
       }

序列化的时候,各个字段还有下面这类属性,下次再写  

[XmlElement("MyFeild")]
public string MyFeild
  {
            get;
            set;
        }
posted @ 2012-02-15 22:24  dayang  Views(733)  Comments(0)    收藏  举报