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 }  

 

你可能感兴趣的:(反序列化)