自定义序列化过程

简介:          除了使用事件以外,还可以通过自定义序列化来完成这一过程。         自定义序列化只需要实现ISerializable接口就可以了。它位于using System.Runtime.Serialization;                SerializationInfo有点儿类似于BinaryWriter和BinaryReader,用于写入和读取对象的属性值。

  

      除了使用事件以外,还可以通过自定义序列化来完成这一过程。

 

      自定义序列化只需要实现ISerializable接口就可以了。它位于using System.Runtime.Serialization;

 

 

 


 

       SerializationInfo有点儿类似于BinaryWriter和BinaryReader,用于写入和读取对象的属性值。它主要包括一组AddValue()方法和一组Get<Type>()方法,还有其他一些属性用于获得程序集和类型的信息。StreamingContext则极少使用。

 

 

 


      得到和前面类似结果:

 

注意:

 

1,需要定义一个在反序列化时候用于还原属性值的构造函数,并且函数前面的格式必须为<classname>(SerializationInfo info,StreamingContext context),它只有在反序列化时通过反射来调用,将其声明为protected可以避免改构造函数在其他情况下被调用;如果类型为sealed,那么也可以声明这个构造函数为private,但如果类型可以被继承,则声明这个构造函数为protected,以方便子类在反序列化时调用。


 

 

 

 

 

2,AddValue(string name,object value)和GetString(string name)中的参数name值必须保持一致,但不一定与类型的字段或属性名相同。

 

 

 

 

 


     大多数情况下,类型会包含多个字段和属性,此时如果使用自定义序列化,可以预见要编写很多的AddValue,和get<Type>方法。因此,在这种情况下,最好像前面那样编写序列化事件处理方法。但是在一种情况下只能通过实行Iserializable来进行序列化和反序列化,这种情况就是继承自一个不可序列化的基类。

 




 

     有了事件处理方法,在加上自定义序列化,我们就能很容易处理实体对象传递过程中的序列化过程了。







目录
相关文章
|
3月前
|
Java
LocalDateTime的全局自定义序列化
LocalDateTime的全局自定义序列化
|
2月前
|
消息中间件 存储 负载均衡
Kafka【付诸实践 01】生产者发送消息的过程描述及设计+创建生产者并发送消息(同步、异步)+自定义分区器+自定义序列化器+生产者其他属性说明(实例源码粘贴可用)【一篇学会使用Kafka生产者】
【2月更文挑战第21天】Kafka【付诸实践 01】生产者发送消息的过程描述及设计+创建生产者并发送消息(同步、异步)+自定义分区器+自定义序列化器+生产者其他属性说明(实例源码粘贴可用)【一篇学会使用Kafka生产者】
212 4
|
2月前
|
消息中间件 分布式计算 Kafka
硬核!Apache Hudi中自定义序列化和数据写入逻辑
硬核!Apache Hudi中自定义序列化和数据写入逻辑
44 1
|
3月前
open-feign自定义反序列化decoder
open-feign自定义反序列化decoder
72 0
|
5月前
open-feign自定义反序列化decoder
open-feign自定义反序列化decoder
143 0
|
8月前
|
缓存 NoSQL Java
SpringBoot自定义redisTemplate的key和value的序列化方式
SpringBoot自定义redisTemplate的key和value的序列化方式
106 0
|
10月前
|
Python
【Django学习】(九)自定义校验器_单字段_多字段校验_模型序列化器类
【Django学习】(九)自定义校验器_单字段_多字段校验_模型序列化器类
|
PHP
PHP:laravel日期序列化自定义默认日期格式
PHP:laravel日期序列化自定义默认日期格式
187 0
|
存储 算法 Java
java 序列化机制和自定义序列化
java 序列化机制和自定义序列化
|
JSON 前端开发 Java
SpringBoot2.x系列教程16--SpringBoot中自定义JSON序列化器和反序列化器
前言 在上一章节中,壹哥 给大家介绍了在SpringMVC框架中,我们可以使用HttpMessageConverter转换器类来转换HTTP请求和响应信息,并且可以实现对JSON信息的格式转换。我们知道,JSON是前后端信息传输的主要载体,我们大多数传递的参数都是利用JSON完成的,所以JSON是非常重要和常用的。而JSON信息本身也比较复杂,其中有些细节需要我们注意,比如JSON的序列化和反序列化。 一. 序列化与反序列化简介 1. 概述 HttpMessageConverter在转换http请求和响应的过程中,可以将对象转为JSON,这个过程我们可以称之为序列化;反过来也可以将JSON转为
1764 0