XML序列化与反序列化

 

1.对于序列化与反序列化的理解

对序列化与反序列化我们可以这样理解,所谓序列化就是将内存中的对象转变成可保存、可传输的数据。例如将对象的值保存在数据库中是序列化,转成XMl、json也是序列化的体现。至于反序列化就是一个逆向过程。

2.可序列化条件

要使一个类可被序列化,需要在其上方标记[Serializable],而[XmlAttribute]指定类成员能够被序列化为xml。

如:

[Serializable]  
public class Person
{
 [XmlAttribute]  
 public string Name;  
}

 即表示Person类的对象可被序列化,而且其Name成员可以被序列化为XML。

3.XML序列化与反序列化的封装:

 

 1  /// <summary>  
 2 /// 反序列化XML为类实例  
 3 /// </summary>  
 4 /// <typeparam name="T"></typeparam>  
 5 /// <param name="xmlObj"></param>  
 6 /// <returns></returns>  
 7 public static T DeserializeXML<T>(string xmlObj)  
 8 {  
 9     XmlSerializer serializer = new XmlSerializer(typeof(T));  
10     using (StringReader reader = new StringReader(xmlObj))  
11     {  
12         return (T)serializer.Deserialize(reader); 
13     }  
14 }  
15 
16 /// <summary>  
17 /// 序列化类实例为XML  
18 /// </summary>  
19 /// <typeparam name="T"></typeparam>  
20 /// <param name="obj"></param>  
21 /// <returns></returns>  
22 public static string  SerializeXML<T>(T obj)  
23 {  
24     using (StringWriter writer = new StringWriter())  
25     {  
26         new XmlSerializer(obj.GetType()).Serialize((TextWriter)writer, obj);  
27         return writer.ToString();  
28     }  
29 }  

 

posted @ 2015-05-07 10:17  FancyYOYO  阅读(229)  评论(0编辑  收藏  举报