百科:序列化 (Serialization)将对象的状态信息转换为可以存储或传输的形式的过程。在序列化期间,对象将其当前状态写入到临时或持久性存储区。以后,可以通过从存储区中读取或反序列化对象的状态,重新创建该对象。
public class Dog { public int Id { get; set; } public string Name { get; set; } public string Sex { get; set; } public int Age { get; set; } public string ReturnString() { return Id + " " + Name + " " + Sex + " " + Age; } } class Program { static void Main(string[] args) { Listlist = new List () { new Dog(){Id=1,Name="旺财",Sex="男",Age=2}, new Dog(){Id=2,Name="哈士奇",Sex="女",Age=4}, new Dog(){Id=3,Name="藏獒",Sex="男",Age=5}, }; //序列化 string xml = XmlSerialize
>(list); Console.WriteLine("*********** 类--> XML ************"); Console.WriteLine(xml); //反序列化 string strXML = " "; List 1 旺财 男 2 2 哈士奇 女 4 3 藏獒 男 5 listDog = DESerializer
>(strXML); Console.WriteLine("*********** XML--> 类 ************"); foreach (Dog dog in listDog) { Console.WriteLine(dog.ReturnString()); } Console.ReadKey(); } /// /// 反序列化 /// public static T DESerializer(string strXML) where T : class { try { using (StringReader sr = new StringReader(strXML)) { XmlSerializer serializer = new XmlSerializer(typeof(T)); return serializer.Deserialize(sr) as T; } } catch (Exception ex) { return null; } } /// /// 序列化 /// public static string XmlSerialize(T obj) { using (StringWriter sw = new StringWriter()) { Type t = obj.GetType(); XmlSerializer serializer = new XmlSerializer(obj.GetType()); serializer.Serialize(sw, obj); sw.Close(); return sw.ToString(); } } }
C# 序列化与反序列化意义详解:
①序列化基本是指把一个对象保存到文件或流中,比如可以把文件序列化以保存到Xml中,或一个磁盘文件中②序列化以某种存储形式使自定义对象持久化;
③将对象从一个地方传递到另一个地方。④将类的值转化为一个一般的(即连续的)字节流,然后就可以将该流写到磁盘文件或任何其他流化目标上。
⑥序列是指将对象的实例状态存储到存储媒体的过程。
在此过程中,先将对象的公共字段以及类的名称(包括类的程序集)转换为字节流,然后再把字节流写入数据流。在随后对对象进行反序列化时,将创建出与原对象完全相同的副本。⑦用处非常大,用于数据传输,对象存贮等。