A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 陈福军 中级黑马   /  2013-10-23 21:16  /  1488 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 陈福军 于 2013-10-26 22:17 编辑

序列化与反序列化在net中的作用请大神们指导一下。谢谢

评分

参与人数 2技术分 +1 黑马币 +10 收起 理由
茹化肖 + 10
haxyek + 1

查看全部评分

6 个回复

倒序浏览
通俗一点的解释,序列化就是把一个对象保存到一个文件或数据库字段中去,反序列化就是在适当的时候把这个文件再转化成原来的对象使用。
我想最主要的作用有:
    1、在进程下次启动时读取上次保存的对象的信息
    2、在不同的AppDomain或进程之间传递数据
    3、在分布式应用系统中传递数据

其实我也不是很懂 但大概知道的只有这些了 上网查了一下好多解释都看不太懂 希望这些能给您一点了解吧

评分

参与人数 1技术分 +1 收起 理由
haxyek + 1

查看全部评分

回复 使用道具 举报
MSDN这里讲的比较详细哦,希望能帮到你
http://msdn.microsoft.com/zh-cn/library/ms731073.aspx

评分

参与人数 1技术分 +1 收起 理由
haxyek + 1

查看全部评分

回复 使用道具 举报
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);

评分

参与人数 2技术分 +11 收起 理由
陈福军 + 10
haxyek + 1

查看全部评分

回复 使用道具 举报 1 0
把对象转换为字节序列的过程称为对象的序列化。

评分

参与人数 1技术分 +1 收起 理由
haxyek + 1

查看全部评分

回复 使用道具 举报
把字节序列还原为对象的过程称为对象的反序列化。
把对象转换为字节序列的过程称为对象的序列化。

评分

参与人数 1技术分 +1 收起 理由
haxyek + 1

查看全部评分

回复 使用道具 举报
序列化:将对象直接以二进制数据的形式表示出来
功能: 传输   文件存储
如何进行序列化和反序列化
       1. 找流,存储二进制数据     FileStream
       2.找目标,序列化什么东西        [Serializable]标记
       3.找对象        BinaryFormater
       4.调用Serialize()方法
反序列化就是调用DeSerialize方法

评分

参与人数 1技术分 +1 收起 理由
haxyek + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马