码迷,mamicode.com
首页 > 其他好文 > 详细

XML序列化与反序列化

时间:2015-05-07 12:14:10      阅读:163      评论:0      收藏:0      [点我收藏+]

标签:

 

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 }  

 

XML序列化与反序列化

标签:

原文地址:http://www.cnblogs.com/fanyit123/p/4484068.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!