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

  今天看了下以前的一个工具的代码,其中涉及到.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.今天是星期天,我这阳光明媚,希望我的内容能够让冬天温度的变化能让对面的你感受到温暖。

时间: 2024-08-08 17:02:22

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

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

序列化是将对象转换成字节流的过程,反序列化是把字节流转换成对象的过程.对象一旦被序列化,就可以把对象状态保存到硬盘的某个位置,甚至还可以通过网络发送给另外一台机器上运行的进程.本篇主要包括: ● 使用BinaryFormatter类进行序列化和反序列化● 使用ISerializable接口自定义序列化过程● 使用XmlSerializer类进行序列化和反序列化 □ 使用BinaryFormatter类进行序列化和反序列化 首先把需要序列化的类打上[Serializable]特性,如果某个字段不需

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

这些天将原来在网上找的jQuery插件进行了下整理,特此将代码分享出来给大家. 见下图结构. 对目录结构进行了分类.这里是插件列表. 这里总共收集了20来个插件.还有下面未进行划分的. 下面是DEMO使用示例. 下面是上次的一个示例. 编写Javascript类库(jQuery版) - 进阶者系列 - 学习者系列文章 主要收集了这些个大概能使用到的插件. 下面提供下载地址: http://files.cnblogs.com/lzhdim/JavascriptSLN.rar Ps.今天是周六,天气

类的序列化和反序列化、对象的归档个解档

对象的编码把对象的类特征以及对象状态转化为某种格式(二进制),这种格式可以存储,也可以在进程间和网络间传递. 类的类型以及实例数据会被写入到某种字节流中,当程序结束的时候,该字节流可以进行持久化.程序启动的时候,新分配的对象可以解码之前保存的自身描述,然后把自己恢复到之前运行时的状态.编码通常需要和归档协作.归档将对象转化成一种可以写进文件系统的格式(档案).解档则是在档案上执行操作.在此过程中,保存在档案的对象需要对自身进行解码. 所以,如果需要将某种类型的实例对象进行归结档,则首先需要对该类

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

序列化 (Serialization)将对象的状态信息转换为可以存储或传输的形式的过程.在序列化期间,对象将其当前状态写入到临时或持久性存储区.以后,可以通过从存储区中读取或反序列化对象的状态,重新创建该对象.(摘自百度百科) 在很多通讯或者数据存储的过程中,都需要序列化和反序列化的过程. 在C#中,如果想要进行自定义类的序列化,只需要简单地在定义类的时候添加Serializable标签即可.如: 1 2 3 4 5 6 [Serializable] public class Person {

内部类,drf响应类,序列化与反序列化

内部类 # 概念:将类定义在一个类的内部,被定义的类就是内部类 # 特点:内部类及内部类的所以名称空间,可以直接被外部类访问的 # 应用:通过内部类的名称空间,给外部类额外拓展一些特殊的属性(配置),典型的Meta内部类 - 配置类 class Book(model.Model): class Meta: db_model = "owen_book" # 配置自定义表名 class BookSerializer(serializers.ModelSerializer): class M

类的序列化和反序列化(ObjectOutputStream和ObjectInputStream)

1.需要序列化的类 import java.io.Serializable; /** * 必须继承 Serializable 接口才能实现序列化 */ public class Employee implements Serializable{ /** * transient 关键字表示该字段无法序列化 */ private transient int age; private String name; public int getAge() { return age; } public voi

.Net编译之AnyCPU - 进阶者系列 - 学习者系列文章

Visual Studio是一款非常强大的IDE工具,它为我们提供了强大的编码.调试和测试等工具,为我们编好.NET软件提供了强大的支持. 今天早晨想到了Visual Studio编译模式中的CPU类型选项,所以写一下以记录. 从图中可以看到配置项和平台项. 点击“配置管理器”,打开配置窗口. 当然,这里的“活动解决方案配置”可以选择“Debug”和“Release”两项,分别对应调试版本和发布版本.这个在代码中我们可以编写调试代码以进行调试. 在”活动解决方案平台“中,就有”Any CPU”.

编写Javascript类库(jQuery版) - 进阶者系列 - 学习者系列文章

这些年主要关注于项目管理方面的工作,编码就比较少了.这几天比较空闲,就想把原来的经验沉淀下来,一个是做好记录,以后如果忘记了还能尽快找回来,第二个是写写博文,算是练练手笔吧. 言归正传,这次写的是Javascript类库.大家都知道,Javacript是一种很有意思的语言.虽然它是前端语言,但是它能做的事情远远超出我们的想象.Javascript同样是一种面向对象的语言,使用它,同样可以自定义对象,同样也具备对象的一些特性,即封装,继承,多态性.同时,Javascript同样也有设计模式,同样能

IT软件的编程方向 - 进阶者系列 - 学习者系列文章

IT软件经过了这么些年的发展,已经形成了很多的软件公司和开发团队,而且当前编程语言也有很多种,让开发人员能够有很大的选择.现在国际上的开发阵营基本分为ASP.NET.JAVA和PHP三种,但是每种开发语言能够进行的开发问题是统一的,本文就从IT软件的编程方向出发,介绍下当前主流的开发方向. 一.网站: 现在的互联网,随着电子商务的发展和企业内部办公系统的应用,以及编程语言的三大阵营的发展,已经形成了很多具体应用的网站系统.但是,在企业内部,很多还是使用ASP.NET和JAVA进行的程序设计,PH