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 }  

 

转载于:https://www.cnblogs.com/fanyit123/p/4484068.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值