序列化(Serialization)是.NET平台最酷的特性之一。

1、为什么要序列化:

首先你应该明白系列化的目的就不难理解他了。系列化的目的就是能在网络上传输对象,否则就无法实现面向对象的分布式计算。比如你的客户端要调用服务器上的一个方法获得一个产品对象,比如方法为:public   Product   findProduct(int   product_id);

注意该方法返回一个Product对象,如果没有系列化技术,客户端就收不到返回的对象Product。而序列化的实现就是把对象变成一个可在网络上传输的字节流。

2、利用序列化技术,可以实现对象的备份和还原。序列化可以将内存中的对象(或对象图)序列化为数据流,并保存到磁盘上进行持久化;还可以将数据流反序列化为对象,实现对象的还原。序列化技术在分布式系统的数据传输中得到充分的利用,如:XML Web Service 利用XML序列化实现跨平台,.NET Remoting 则用到了二进制序列化和SOAP序列化。

.NET Compact Framework 2.0 支持XML序列化,不支持二进制序列化和SOAP序列化。而 .NET Compact Framework 1.0 连XML序列化都不支持。不过 OpenNETCF 1.x 为 .NET CF 1.0 实现了一个XML序列化的类,这个类在 OpenNETCF.Xml.dll 程序集中可以找到。

序列化和反序列化用于将一个对象保存到文件,和从文件读取。

using   System.IO;
using   System.Runtime.Serialization.Formatters.Binary;
[Serializable()]//可以序列化的类需要用这个属性标记   public   class   ToBeSerialized
{   public   int   a;   public   string   b;   public   ToBeSerialized(int   a,string   b)   {   this.a=a;   this.b=b;   }
}   public   class   Test
{   public   void   Serialize()//序列化   {   ToBeSerialized   tbs = new   ToBeSerialized(22,"SOM");   Stream   fs   =   File.Create("Serialized.txt");   BinaryFormatter   serializer   =   new   BinaryFormatter();   serializer.Serialize(fs,   tbs);   fs.Close();   }   public   void   DeSerialize()//反序列化   {   ToBeSerialized   restore;   Stream   fs   =   File.OpenRead("Serialized.txt");   BinaryFormatter   deserializer   =   new   BinaryFormatter();   restore   =   (ToBeSerialized)(deserializer.Deserialize(fs));//反序列化得到的对象   fs.Close();   }
}

  

转载于:https://www.cnblogs.com/herbert/archive/2011/09/19/2181901.html

还是这个序列化的解释比较好懂相关推荐

  1. 对于session序列化跟session的钝化与活化的粗浅理解

    1. API对序列化的解释:类通过实现 java.io.Serializable 接口以启用其序列化功能.未实现此接口的类将无法使其任何状态序列化或反序列化.可序列化类的所有子类型本身都是可序列化的. ...

  2. 包含c语言的序列化字符,Android Serializable与Parcelable原理与区别

    一.序列化.反序列化是什么? (1) 名词解释 对象的序列化 : 把Java对象转换为字节序列并存储至一个储存媒介的过程. 对象的反序列化:把字节序列恢复为Java对象的过程. (2) 序列化详细解释 ...

  3. 六、python Django REST framework数据格式处理[序列化]

    django 3.2.13 一.序列化和反序列化 安装:pip install djangorestframework 序列化:序列化就是从数据库里面取出数据->并且把数据格式改为能直接返回的格 ...

  4. java对象流保存表格,序列化表格 (Java 2 Platform SE 5.0)

    此字段有两种可能的解释: startMode == DOW_IN_MONTH startDay 指示夏令时是在 startMonth 月份中的哪个日期开始的,该日期可以是从 1 到 28.30 或 3 ...

  5. 你了解java序列化吗?一篇文章搞懂java序列化

    程序员的成长之路 互联网/程序员/技术/资料共享 关注 阅读本文大概需要 9 分钟. 来自:https://www.cnblogs.com/xiaohuiduan/p/12398775.html 首先 ...

  6. java rest 序列化_一文看懂Java序列化

    一文看懂Java序列化 简介 首先我们看一下wiki上面对于序列化的解释. 序列化(serialization)在计算机科学的数据处理中,是指将数据结构或对象状态转换成可取用格式(例如存成文件,存于缓 ...

  7. 深入浅出神经网络原理

    目录 一.感知器 二.感知器的例子 三.权重和阈值 四.决策模型 五.矢量化 六.神经网络的运作过程 七.神经网络的例子 八.输出的连续性 眼下最热门的技术,绝对是人工智能. 人工智能的底层模型是&q ...

  8. 一个简单案例,5 分钟看懂 Java Lamdba 表达式

    JDK8引入了一个新玩意,叫做lamdba(那么大)的表达式,说得神乎其神,说真的,这玩意吧,并不难,但是要讲清楚吧,也不是太容易的事情. 从匿名内部类开始说起 老实交代,直接来讲lamdba表达式还 ...

  9. Android Serializable与Parcelable原理与区别

    2019独角兽企业重金招聘Python工程师标准>>> 一.序列化.反序列化是什么? (1) 名词解释 对象的序列化 : 把Java对象转换为字节序列并存储至一个储存媒介的过程. 对 ...

最新文章

  1. python 命令行参数-python获取命令行参数的方法(汇总)
  2. [Web开发] 微软的 PHP+IIS+WinServer 开发培训资料/示例代码
  3. GetResponse() 基础连接已经关闭:服务器关闭了本应保持活动状态的连接
  4. java 时间衰减函数_TensorFlow实现指数衰减学习率的方法
  5. hibernate+oracle+servlet实现插入数据的时候,不立马显示!!
  6. java 加密解密编程,java 加密解密容易实现
  7. java动态json入库_从JSon File动态生成模式
  8. 读《那些年,那些事 一个程序猿的奋斗史》 一点自己的感触
  9. 【转】Update: Android.mk 中的 LOCAL_SRC_FILES, LOCAL_C_INCLUDES
  10. 第九课 go的循环语句
  11. (包含每张图片的3DMM系数,可以直接重建出3D人脸)AFLW2000-3D数据库介绍及自带代码使用
  12. 208亿GMV的抖音年货节里,商家和品牌如何“抢新”?
  13. 通过java实现word转PDF
  14. 燃烧的远征java(二)-开发环境:eclipse 的使用技巧收集
  15. springboot上传图片
  16. vmware linux虚拟机中添加硬盘
  17. 苹果4s怎么越狱_iPhone 12系列细节曝光:苹果调整屏幕尺寸
  18. 竞斗云lite正式发布,就是冲着2亿电竞用户的客厅去的!
  19. matlab如何泰勒公式用求近似值_matlab2016bn阶泰勒公式怎么求?
  20. portal 源代码

热门文章

  1. 1020 Tree Traversals
  2. 1080 Graduate Admission
  3. php instr函数,oracle的instr函数用法
  4. 参加Python培训班能找到工作吗?
  5. matlab实验是啥,matlab实验心得体会
  6. 自动驾驶L3量产追梦:如何跨过车规级和低成本门槛?
  7. [20171225]查看并行执行计划注意的问题.txt
  8. Redis安装整理(window平台) +php扩展redis
  9. 将表里的数据批量生成INSERT语句的存储过程 增强版
  10. 解决getOutputStream() has already been called for this response[java io流]