什么是序列化?

    形象的说,序列化就是(1)将一个对象保存到到存储介质上或者(2)将对象进行转换使其能够在网络上传输的行为。能对一个类进行序列化的条件是:该类的任何基类都可以序列化;该类应用了Serializable特性。

    序列化常用的两个应用如下:

1.保存和加载程序的配置

    我们在程序中可以创建一个类,它包含了应用程序的配置信息。当应用程序加载时,配置对象被反序列化到内存中的配置类;当用户在程序运行的过程中对配置信息进行修改的时候,可以把配置信息(在内存中)序列化到硬盘中,以后运行程序的时候可以方便的从硬盘中加载这些配置信息。这样就方便的实现了配置文件的读写。

2.分布式计算

    序列化的最大优势在于分布式计算。两台机器拥有相同的程序集,则可以利用序列化技术进行通信。A机器通过序列化技术向B机器发送对象的快照,B机器能快速、正确的重建出改对象来。

    在.NET Framework中,有三种序列化机制:二进制、XML和SOAP(Simple Object Access Protocol 简单对象访问协议)。他们各自的优缺点如下:

    (1)二进制序列化的最大优点是:类型数据可以准确的表示出来。因为二进制序列化可以序列化公有和私有成员,所以在反序列化的时候可以忠诚的重建出改对象的状态。

    (2)XML只序列化对象的公有属性和字段。在XML序列化时,私有字段和其他实例对象就丢失了。

    (3)XML和SOAP是开发标准,具有很好的移植性。

 

扩展:C#中进行序列化和反序列化的代码很简单,三者对应的命名空间及对应的格式化类分别如下:

二进制System.Runtime.Serialization.Formatters.Binary-BinaryFormatter

XML:System.Xml.Serialization-XmlSerialization

SOAP:System.Runtime.Serialization.Formatters.SOAP-SoapFormatter

                                                                                                                                                                                     参考资料:《.NET程序员面试宝典》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值