码迷,mamicode.com
首页 > 其他好文 > 详细

为什么要使用序列化

时间:2015-05-30 22:44:03      阅读:214      评论:0      收藏:0      [点我收藏+]

标签:序列化   总结 c#   

    在日常的程序开发中,用到了很多次的序列化的数据,可是一直不清楚为什么要将数据序列化,经过一段时间的学习与验证,有了一些个人看法,在这里做个总结,权当抛砖引玉了。

         为什么要将数据序列化?个人认为,可以从两个方面来解释,一方面是为了方便数据存储,另一方面是为了方便数据的传递。

         通常我们的数据会存放到数据库中,但是,数据库存储数据也是有限制的,我们也不能将所有数据都存放到数据库中吧。假如说程序中有这么一种数据,在整个程序运行过程中,这些数据能且只能使用一次,使用过后就会改变或者无效,并且,数据量比较大,且数据不重复,那么,我们应该如何设计数据库呢?首先,数据不重复,也就不存在将这些数据存放到一张表中,可是,我们有不能为每个中间数据单独的建立一张数据表,这样太浪费了,那么序列化便应运而生。

         首先,我们将所有需要存储的中间数据序列化,然后将序列化后的数据保存到数据库的一个字段中,然后为这个表设置一个主键即可。是不是很方便呢?且看数据库保存形式。

技术分享

         我们可以看到,XML形式的数据其实可以当作链接,点击后,即可在数据库中查看相应内容,查询的时候,直接使用主键查询,然后将查询结果反序列化即可。

技术分享

        第二个方面是数据传递,程序之间的数据传递,窗体之间的数据传递等,我这里主要以前后台之间的数据传递为例,说明序列化的好处。

         现在,我们要将一个实体从后台传递到前台进行逻辑计算,或者将前台的实体数据传递到后台,我们应该怎么做呢?

         比较明智的办法就是将数据绑定到隐藏域控件上,然后在控件上取值,假如我们的实体包括很多字段怎么办呢?总不至于每个字段对应一个隐藏域吧,于是,序列化又有大展拳脚了。我们可以将实体序列化,然后在赋值到隐藏域,获取数据后,反序列化即可。

序列化以前的后台数据

技术分享

后台数据序列化以后:技术分享

前台获取数据形式,通过对象监控,获取控件返回值。

技术分享


可见,获取到底额数据还是序列化以后的格式,然后进行反序列化即可得到原来的实体数据。监控可知:

技术分享

数据又还原到了实体格式,这样是不是很方便呢?

综上所述,序列化好处:

1 方便数据传递,减少了数据丢失率,增强了程序安全性。

2 有利于数据存储,减少了不必要的内存浪费,节约了资源。

3 简化了数据库结构,增强了程序的可维护性。

为什么要使用序列化

标签:序列化   总结 c#   

原文地址:http://blog.csdn.net/u010942465/article/details/46278609

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!