今天看了下以前的一个工具的代码,其中涉及到.NET类的序列化和反序列化问题,所以就写一下。

  这里说一下.NET类序列化的好处。.NET类在序列化之前只是一个相对狭义的类。通过序列化,能够更好的保存该类的形式,也能够更好的通过XML来保存类的内容。通过类的反序列化,我们就能够更好的获取该类的内容,也能够更好的通过XML操作的方式来访问该类的内容。

  下面我们来看看类序列化的方法。

  

  这里提供了两个方法。第一个方法很简单,直接传入一个对象,然后通过XmlSerializer类来进行获取该类的内容,为下面的序列化做准备。然后通过StringWriter的Serialize方法来讲对象序列化为文本形式。

  第二个方法也很简单,通过传入对象数组,以及对象数组的类型,然后,同样是通过StringWriter的Serialize方法来讲对象数组序列化为文本形式。

  我们再来看看反序列化的方法。

  

  这里提供了三个方法。第一个方法很简单,通过传入对象类型,以及已经将该对象序列化后的文本串,通过TextReader的Deserialize方法将该文本内容转换成类的形式。

  第二个方法也很简单,直接传入对象类型和已经序列化够的文本内容,同样是通过TextReader的Deserialize方法将该文本内容转换成类的形式。

  第三个方法也很简单,通过传入类型数组的形式,以及对象数组类型以及内容的类型来进行处理,最后同样是通过TextReader的Deserialize方法将该文本内容转换成类的形式。

  通过上面的代码,我们可以看到序列化和反序列化的简单方法。下面我们将使用的代码说一下。

  

  上面是一段使用到的代码,主要是将配置的对象的内容序列化成XML的形式然后进行保存。

  下面再看看反序列化。

  

  上面将已经序列化后的用户配置内容反序列化成对象,返回然后就能够将对象进行操作了。省却了很多操作和保存的内容。

  通过上面的描述,估计大家已经对.NET类的序列化和反序列化有了一个概念,我们能够看出序列化和反序列化对象方面的好处。同样的,我们也能够将序列化后的内容保存到数据库中,然后通过读取数据库的形式进行反序列化对象来进行使用。上述只是将对象保存成文件的形式进行了处理。

  这里提供出上面使用到的两个类文件,以供需要的人进行使用。

  http://files.cnblogs.com/lzhdim/%E5%BA%8F%E5%88%97%E5%8C%96%E5%92%8C%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96.rar

Ps.今天是星期天,我这阳光明媚,希望我的内容能够让冬天温度的变化能让对面的你感受到温暖。

.Net类的序列化和反序列化 - 进阶者系列 - 学习者系列文章的更多相关文章

  1. 初识序列化和反序列化,使用BinaryFormatter类、ISerializable接口、XmlSerializer类进行序列化和反序列化

    序列化是将对象转换成字节流的过程,反序列化是把字节流转换成对象的过程.对象一旦被序列化,就可以把对象状态保存到硬盘的某个位置,甚至还可以通过网络发送给另外一台机器上运行的进程.本篇主要包括: ● 使用 ...

  2. jQuery插件库代码分享 - 进阶者系列 - 学习者系列文章

    这些天将原来在网上找的jQuery插件进行了下整理,特此将代码分享出来给大家. 见下图结构. 对目录结构进行了分类.这里是插件列表. 这里总共收集了20来个插件.还有下面未进行划分的. 下面是DEMO ...

  3. java基础知识回顾之javaIO类--java序列化和反序列化

    /** *  * 一:理解序列化反序列化及其应用 * 序列化:把堆内存的对象转化成字节流的过程. * 反序列化:把字节流序列恢复重构成对象的过程. * 对象的序列化的用途:1.把对象的字节序列持久化, ...

  4. C#中使用JavaScriptSerializer类实现序列化与反序列化

    1.添加引用 JavaScriptSerializer类的使用需要引用System.Web.Extensions.dll文件,根据路径:C:\Program Files (x86)\Reference ...

  5. C# 类的序列化和反序列化

    序列化 (Serialization)将对象的状态信息转换为可以存储或传输的形式的过程.在序列化期间,对象将其当前状态写入到临时或持久性存储区.以后,可以通过从存储区中读取或反序列化对象的状态,重新创 ...

  6. JsonHelper类(序列化和反序列化辅助类)

       1: using System; 2: using System.Collections.Generic; 3: using System.Linq; 4: using System.Web; ...

  7. 用C#实现XML和实体类之间序列化和反序列化相互转换

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.I ...

  8. java-IO处理类的序列化与反序列化

    package TestIo; import java.io.*; /** * 序列化 * * * 对象序列化 * * 一 创建对象 需要说明,想序列化的对象一定要是实现Serivalizable接口 ...

  9. C# 把类实例保存到文件里(类的序列化和反序列化)

    有时候我们希望把类的实例保存下来,以便以后的时候用.一个直观的方法就是StreamWriter把类写成一行,用\t分隔开每个属性,然后用StreamReader读出来. 但是这样太麻烦,代码行数较多, ...

随机推荐

  1. HDU 3081 Marriage Match II(二分法+最大流量)

    HDU 3081 Marriage Match II pid=3081" target="_blank" style="">题目链接 题意:n个 ...

  2. 使用Advanced Installer 自动部署 Arcgis Engine Runtime 10.0

    原文:使用Advanced Installer 自动部署 Arcgis Engine Runtime 10.0 目前采用Arcgis9.2 + c#(vs2008)作为程序开发平台,是一个不错的搭配. ...

  3. 设计模式——依赖倒置原则实例(PHP实现)

    <?php /** * 设计模式--依赖倒置原则实例 * Created by DannyWang * jue.wang@yulore.com * 2015-05-05 */ abstract ...

  4. 【剑指offer】最大和连续子阵列

    个開始,到第3个为止).你会不会被他忽悠住? 输入: 输入有多组数据,每组測试数据包括两行. 第一行为一个整数n(0<=n<=100000),当n=0时,输入结束.接下去的一行包括n个整数 ...

  5. a^b%c 的三种形式

    求a^b%c,(1  <= a,b <= 2^62, 1 <= c <= 10^9) 最主要的高速幂 _LL mod_exp(_LL a, _LL b, int c) { _L ...

  6. 架构设计之设计模式 (一) 适配器(Adapter)---提高复用性

    简介 简介是为了描述一下该模式是干嘛用的,为了让不了解该模式的人看了之后也有一些新的认识. 本文章分为两部分,第一部分主要介绍适配器模式:第二部分介绍该模式与相近模式的异同. 下午一直在讨论设计模式, ...

  7. Codeforces Round #272 (Div. 1)D(字符串DP)

    D. Dreamoon and Binary time limit per test 2 seconds memory limit per test 512 megabytes input stand ...

  8. 关于微软公有云Azure会计标准

    前几年.中国的云计算项目往往搞成了房地产项目.大搞形"象project",没有实质性的内容.云计算老总成了房地产大老板,国内业界是在胡闹! 现今,世纪互联与微软(中国)联手搞公有云 ...

  9. HDU 1102 Constructing Roads, Prim+优先队列

    题目链接:HDU 1102 Constructing Roads Constructing Roads Problem Description There are N villages, which ...

  10. linux_Ubuntu 12.04 安装jdk

    1.下载jdk6jdk6下载地址为:http://download.java.net/jdk6/,根据操作系统的选择对应的安装包,我的是ubuntu 12.04 32bit的,所以下载的文件是jdk- ...