初步了解序列化

一提到序列化,也许你会开始迷惑了,它是什么意思呢?如果从这三个字本身,我们也许就要理解错了,序列化并不是排成序列的意思,它呢,类似于我们平时用的照相机,会将某个状态给记录下来,当我们想用的时候,就像照片一样,拿出来就行了。

  具体的定义这样的,序列化是将对象状态转换为可保持(保存)或传输的形式的过程。序列化的补集是反序列化,后者将转换为对象.这两个过程一起保证数据易于存储和传输。

.NET Framework提供了两个序列化技术:
1、二进制序列化

  二进制序列化保持类型保真,这对于多次调用应用程序时保持对象状态非常有用。例如,通过将对象序列化到剪贴板,可在不同的应用程序之间共享对象。您可以将对象序列化到流、磁盘、内存和网络等。远程处理使用序列化,“按值"在计算机或应用程序域之间传递对象。(游戏中画面的同步也就用到了序列化)

  

   二进制序列化是这么一个过程:它是将一个对象状态存储到存储介质的过程。在这个过程中,对象的公共字段和私有字段以及类(包括含有该类的程序集)的名称,将转换成字节流,而字节流接着将写入数据流。这样就完成了序列化了。 当你需要这张”照片“时,那么,我们就可以通过反序列化来取。这时,会得到原始对象的准确克隆。

  二进制序列化需要的命名空间
  using
System.Runtime.Serialization;
  using
System.Runtime.Serialization.Formatters.Binary;

初步了解序列化

时间: 2024-10-25 12:19:31

初步了解序列化的相关文章

基于C/S架构的3D对战网络游戏C++框架 _05搭建系统开发环境与Boost智能指针、内存池初步了解

本系列博客主要是以对战游戏为背景介绍3D对战网络游戏常用的开发技术以及C++高级编程技巧,有了这些知识,就可以开发出中小型游戏项目或3D工业仿真项目. 笔者将分为以下三个部分向大家介绍(每日更新): 1.实现基本通信框架,包括对游戏的需求分析.设计及开发环境和通信框架的搭建: 2.实现网络底层操作,包括创建线程池.序列化网络包等: 3.实战演练,实现类似于CS反恐精英的3D对战网络游戏: 技术要点:C++面向对象思想.网络编程.Qt界面开发.Qt控件知识.Boost智能指针.STL算法.STL.

嘿嘿,学习啦序列化

嘿嘿,不论发生什么的情况,学校没有老师上课也好,我们都要自己主动地学习啦,学习是不能落下的啦,虽然我们这周没有老师给我们上课,但是我们只有自己学习啦,还记得前几天,老是简单的说啦下序列化,那时间也只是简单的听啦一下大概的内容,只知道需要一个关键字啦,今天没有上课也就没有什么新的知识总结啦,那么我就自己寻找些自己想知道的啦,下面详细的总结下序列化与反序列化啦. 一.序列化 序列化:就是将对象的状态信息转换为可以存储或传输的形式的过程.在序列化期间,对象将其当前状态写入到临时或持久性存储区.以后,可

最常用的两种C++序列化方案的使用心得(protobuf和boost serialization)

导读 1. 什么是序列化? 2. 为什么要序列化?好处在哪里? 3. C++对象序列化的四种方法 4. 最常用的两种序列化方案使用心得 正文 1. 什么是序列化? 程序员在编写应用程序的时候往往需要将程序的某些数据存储在内存中,然后将其写入某个文件或是将它传输到网络中的另一台计算机上以实现通讯.这个将 程序数据转化成能被存储并传输的格式的过程被称为"序列化"(Serialization),而它的逆过程则可被称为"反序列化" (Deserialization). 简单

状态保持以及AJAX的初步学习

嘿嘿,今天学习的有点迷茫哦,主要学习把验证码使用在登录页面时间的一些逻辑,学习这个时间并没有那么的迷惑哦,可是自己写程序时间倒是有点反应迟钝,不过还好总是在最后搞清楚啦,另外就是一步一步的学习是接近项目期,今天下午学习了ajax,这个使用javascript写起来还是蛮麻烦的,嘿嘿,但是使用jquery实现是非常的简单的,不知道是不是由于我刚接触的原因,下面来总结一下今天学习的内容,感觉今天学习的还是很有必要详细总结的,因为在以后的项目中还是经常会使用的. 一.状态保持 1.cookie的添加与

初步了解的J2EE

(一)简介:         J2EE就是基于JAVA技术的一系列标准,是Java的一种企业版用于企业级的应用服务开发.通过比较,我们来更深刻的理解什么是J2EE.下面三句话可以非常清晰的看出J2EE,J2SE和J2ME的区别. J2EE是Java 2 enterpriseedition,是Java的一种企业版,用于企业级的应用服务开发: J2SE是Java 2 standard edition,是Java的标准版,用于标准的应用开发: J2ME是Java 2 Micro Edition,是Ja

浅析SQL Server在可序列化隔离级别下,防止幻读的范围锁的锁定问题

原文:浅析SQL Server在可序列化隔离级别下,防止幻读的范围锁的锁定问题 本文出处:http://www.cnblogs.com/wy123/p/7501261.html (保留出处并非什么原创作品权利,本人拙作还远远达不到,仅仅是为了链接到原文,因为后续对可能存在的一些错误进行修正或补充,无他) 数据库在处理并发事物的过程中,在不同的隔离级别下有不同的锁表现,在非可序列化隔离级别下,存在着脏读,不可重复读,丢失更新,幻读等情况.本文不讨论脏读和不可重复读以及丢失更新的情形,仅讨论幻读,幻

Location:Action,新的JSON序列化的思路

通常来说,序列化json,实际上有2总方式 通过当前流行的JSON工具. 编写代码,手工序列化 这俩种方式各有优劣.第一种方式毫无疑问,不需要开发者做什么工作,直接调用序列化接口,输出就是json.但是,如果需要特殊需求,比如需要将日期格式化按照yyyy-mm-dd 输出,这些JSON工具可以指定日期格式化输出,比如FastJSON里: SerializeConfig mapping = new SerializeConfig(); String dateFormat = "yyyy-MM-dd

最经常使用的两种C++序列化方案的使用心得(protobuf和boost serialization)

导读 1. 什么是序列化? 2. 为什么要序列化?优点在哪里? 3. C++对象序列化的四种方法 4. 最经常使用的两种序列化方案使用心得 正文 1. 什么是序列化? 程序猿在编写应用程序的时候往往须要将程序的某些数据存储在内存中,然后将其写入某个文件或是将它传输到网络中的还有一台计算机上以实现通讯.这个将程序数据转化成能被存储并传输的格式的过程被称为"序列化"(Serialization),而它的逆过程则可被称为"反序列化"(Deserialization). 简

使用JSON.Net(Newtonsoft.Json)作为ASP.Net MVC的json序列化和反序列化工具

ASP.Net MVC默认的JSON序列化使用的是微软自己的JavaScriptSerializer.性能低不说,最让人受不了的是Dictionary<,>和Hashtable类型居然对应的json是[{"Key":"a","Value":1}]而不是{"a":1}.真是奇葩到家了,跟前端根本没法集成! 决定还是用JSON.Net来做吧!查了各种资料,网上的要么代码太复杂,要么没法完全实现.又在ILSpy分析了MV