标签:
对序列化与反序列化我们可以这样理解,所谓序列化就是将内存中的对象转变成可保存、可传输的数据。例如将对象的值保存在数据库中是序列化,转成XMl、json也是序列化的体现。至于反序列化就是一个逆向过程。
要使一个类可被序列化,需要在其上方标记[Serializable],而[XmlAttribute]指定类成员能够被序列化为xml。
如:
[Serializable]
public class Person
{
[XmlAttribute]
public string Name;
}
即表示Person类的对象可被序列化,而且其Name成员可以被序列化为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 }
标签:
原文地址:http://www.cnblogs.com/fanyit123/p/4484068.html