摘要: 序列化对象时,格式化器输入类型及其定义程序集的全名。反序列化一个对象时,格式化器根据这个信息类准确的判断要为对象构造并初始化什么类型。前面,我们讨论了如何利用IserializationSurrogate接口接管一个特定的类型的序列化和反序列化。实现了IserializationSurrogate接... 阅读全文
posted @ 2015-07-05 16:53 -祐扌戒恉- 阅读(751) 评论(0) 推荐(0) 编辑
摘要: 前面讨论了如何修改一个类型的实现,控制该类型如何对他本身的实现进行序列化和反序列化。然而,格式化器还允许不是”类型实现的一部分”的代码重写该类型序列化和反序列化器对象的方式。应用程序之所以要重写类型的的行为,主要是基于两个方面的考虑。1、 允许开发人员序列化最初没有设计成要序列化的一个类型。2、 允... 阅读全文
posted @ 2015-07-05 16:52 -祐扌戒恉- 阅读(553) 评论(0) 推荐(1) 编辑
摘要: .NET Framework的序列化架构相当全面,本节要讨论如何设计一个类型,本节要讨论如何设计一个类型,它能将自己的序列化或反序列化成一个不同的类型或对象。下面列举一些有趣的例子。1、 有的类型(比如System.DBNull和System.Reflection.Missing)设计成每个AppD... 阅读全文
posted @ 2015-07-05 11:16 -祐扌戒恉- 阅读(841) 评论(0) 推荐(0) 编辑
摘要: 前面讲过,一组序列化好的对象可以有许多目的地:同一个进程、同一台机器不同进程、不同机器上的不同进程等。在一些比较少见的情况下,一个对象可能想知道它要在什么地方反序列化,从而已不同的方式生成它的状态。例如,对一个包装了Windows信号量对象的一个对象,如果它知道要反序列化到同一个进程中,就可能决定序... 阅读全文
posted @ 2015-07-05 10:41 -祐扌戒恉- 阅读(188) 评论(0) 推荐(0) 编辑
摘要: 本章前面讨论过,控制序列化和反序列化过程的最佳方式就是使用OnSerializing、OnSerialized、OnDeserializing、OnDeserialized、NonSerialized、OptionalField等attribute。然而,在一些极少见的情况下,这些attribute... 阅读全文
posted @ 2015-07-05 10:16 -祐扌戒恉- 阅读(675) 评论(0) 推荐(0) 编辑