NET Framework提供了多種序列化對象的方法,二進制,XML, SOAP,而在系統中應用往往使用對象序列化來暫存或緩存對象狀態。
第一步,序列化對象到字串
第二步,將字串反序列化為對象

Employee是自定義對象,XML 序列化只能序列化public屬性,無值的屬性不生成XML Tag.
調用示例:
//輸出結果
<?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
第一步,序列化對象到字串
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();
}
{
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;
}
{
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
}
{
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
浙公網安備 33010602011771號