黑马程序员技术交流社区

标题: 序列化与反序列化的区别? [打印本页]

作者: 陈福军    时间: 2013-10-23 21:16
标题: 序列化与反序列化的区别?
本帖最后由 陈福军 于 2013-10-26 22:17 编辑

序列化与反序列化在net中的作用请大神们指导一下。谢谢
作者: 姐的霸气谁懂    时间: 2013-10-23 21:34
通俗一点的解释,序列化就是把一个对象保存到一个文件或数据库字段中去,反序列化就是在适当的时候把这个文件再转化成原来的对象使用。
我想最主要的作用有:
    1、在进程下次启动时读取上次保存的对象的信息
    2、在不同的AppDomain或进程之间传递数据
    3、在分布式应用系统中传递数据

其实我也不是很懂 但大概知道的只有这些了 上网查了一下好多解释都看不太懂 希望这些能给您一点了解吧
作者: 杨靖    时间: 2013-10-23 21:40
MSDN这里讲的比较详细哦,希望能帮到你
http://msdn.microsoft.com/zh-cn/library/ms731073.aspx
作者: 茹化肖    时间: 2013-10-23 21:52
NET里边某些类已经实现了ISerializable接口,比如DataTable DataSet等,那么这些类就可以随意被序列化和反序列化。对于自己写的某个类想要实现序列化功能,就必须实现ISerializable接口。
对于楼主希望实现复杂类型属性的序列化,这个完全是你自己编程实现的,并不是程序自动帮你序列化的。实现过程就是你的复杂类继承ISerializable,实现GetObjectData方法。
//序列化
Image I = new Bitmap(...);
System.IO.MemoryStream M=new System.IO.MemoryStream();
I.Save(M, I.RawFormat);
byte[] B = M.ToArray();

...

//反序列化
M = new System.IO.MemoryStream(B);
I = new Bitmap(M);
作者: 马晓平    时间: 2013-10-23 23:41
把对象转换为字节序列的过程称为对象的序列化。
作者: 马晓平    时间: 2013-10-23 23:42
把字节序列还原为对象的过程称为对象的反序列化。
把对象转换为字节序列的过程称为对象的序列化。
作者: ˋ初°见    时间: 2013-10-24 18:47
序列化:将对象直接以二进制数据的形式表示出来
功能: 传输   文件存储
如何进行序列化和反序列化
       1. 找流,存储二进制数据     FileStream
       2.找目标,序列化什么东西        [Serializable]标记
       3.找对象        BinaryFormater
       4.调用Serialize()方法
反序列化就是调用DeSerialize方法




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2