博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C# XML 序列化 及 反序列化
阅读量:4984 次
发布时间:2019-06-12

本文共 2230 字,大约阅读时间需要 7 分钟。

百科:序列化 (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)        {                              List
list = 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 = "
1
旺财
2
2
哈士奇
4
3
藏獒
5
"; List
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中,或一个磁盘文件中

②序列化以某种存储形式使自定义对象持久化;

③将对象从一个地方传递到另一个地方。

④将类的值转化为一个一般的(即连续的)字节流,然后就可以将该流写到磁盘文件或任何其他流化目标上。

⑥序列是指将对象的实例状态存储到存储媒体的过程。

在此过程中,先将对象的公共字段以及类的名称(包括类的程序集)转换为字节流,然后再把字节流写入数据流。在随后对对象进行反序列化时,将创建出与原对象完全相同的副本。

⑦用处非常大,用于数据传输,对象存贮等。

转载于:https://www.cnblogs.com/wangqilong/p/10088359.html

你可能感兴趣的文章
R语言学习笔记之八
查看>>
正则表达式语法(msdn)
查看>>
MySQL 数据类型 详解 (转载)
查看>>
Maven学习笔记(一)
查看>>
分割线
查看>>
xls的读写
查看>>
用函数创建子进程
查看>>
Myeclipse配置插件
查看>>
gitlab配置通过smtp发送邮件(QQ exmail腾讯企业为例)
查看>>
蓝桥杯之入学考试
查看>>
新公司java的注解以及springboot的相关注解
查看>>
Unity脚本的生命周期中几个重要的方法
查看>>
poj1552
查看>>
Thinkphp中文水印和图片水印合体集成插件
查看>>
FLASK安装--兼收EZ_INSTALL及PIP
查看>>
C++静态成员变量和静态成员函数小结
查看>>
Python---Flask--02--模板
查看>>
PHP学习笔记---封装(面向对象三大特性之一)
查看>>
如何快速找到指定端口被哪个程序占用并释放该端口(解决bindException)
查看>>
迭代之while循环(1)
查看>>