dreammaster

天行健,君子以自强不息;地势坤,君子以厚德载物

博客园 首页 新随笔 联系 订阅 管理
NET  Framework提供了多种序列化对象的方法,二进制,XML,  SOAP,而在系统中应用往往使用对象序列化来暂存或缓存对象状态。

第一步,序列化对象到字串
public static string GetObjectXML(object e)
        {
            XmlSerializer serilizer 
= new XmlSerializer(typeof(Employee));

            System.Text.StringBuilder sbXML 
= new StringBuilder();

            System.IO.StringWriter writer 
= new System.IO.StringWriter(sbXML);

            serilizer.Serialize(writer, e);

            writer.Close();

            
return sbXML.ToString();
        }

第二步,将字串反序列化为对象
        public static Employee GetObjectFromXML(string xml)
        {
            XmlSerializer serializer 
= new XmlSerializer(typeof(Employee));

            System.IO.StringReader reader 
= new System.IO.StringReader(xml);

            Employee emp 
= (Employee)serializer.Deserialize(reader);

            
return emp;
        }

Employee是自定义对象,XML 序列化只能序列化public属性,无值的属性不生成XML Tag.

调用示例:
        static void Main(string[] args)
        {
            Employee emp 
= new Employee();
            emp.FirstName 
= "Johnson";
            emp.LastName 
= "Yang";
            emp.Id 
= 1;

            Console.WriteLine(
"{0}", GetObjectXML(emp));

            Console.WriteLine(
"First Name = {0}", GetObjectFromXML(GetObjectXML(emp)).FirstName);
        }


//Employee

    
public class Employee
    {
        member variables
#region member variables
        
private int _id;
        
private string _firstName;
        
private string _lastName;
        
private string _sex;
        
private DateTime _birthday = DateTime.Now;        
        
#endregion

        
public properties#region public properties
        
public int Id
        {
            
get { return _id; }
            
set { _id = value; }
        }
        
public string FirstName
        {
            
get { return _firstName; }
            
set { _firstName = value; }
        }
        
public string LastName
        {
            
get { return _lastName; }
            
set { _lastName = value; }
        }
        
public string Sex
        {
            
get { return _sex; }
            
set { _sex = value; }
        }
        
public DateTime BirthDay
        {
            
get { return _birthday; }
            
set { _birthday = value; }
        }
        
#endregion
    }

//输出结果

<?xml version="1.0" encoding="utf-16"?>
<Employee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http:
//www.w3.org/2001/XMLSchema">
  <Id>1</Id>
  <FirstName>Johnson</FirstName>
  <LastName>Yang</LastName>
  <BirthDay>2007-03-13T21:51:33.078125+08:00</BirthDay>
</Employee>
First Name = Johnson

posted on 2007-03-14 15:51  梦幻天涯  阅读(889)  评论(1编辑  收藏  举报