自定义序列化过程

简介:          除了使用事件以外,还可以通过自定义序列化来完成这一过程。         自定义序列化只需要实现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来进行序列化和反序列化,这种情况就是继承自一个不可序列化的基类。

 




 

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







目录
相关文章
|
8月前
|
Java
LocalDateTime的全局自定义序列化
LocalDateTime的全局自定义序列化
|
8月前
|
消息中间件 存储 负载均衡
Kafka【付诸实践 01】生产者发送消息的过程描述及设计+创建生产者并发送消息(同步、异步)+自定义分区器+自定义序列化器+生产者其他属性说明(实例源码粘贴可用)【一篇学会使用Kafka生产者】
【2月更文挑战第21天】Kafka【付诸实践 01】生产者发送消息的过程描述及设计+创建生产者并发送消息(同步、异步)+自定义分区器+自定义序列化器+生产者其他属性说明(实例源码粘贴可用)【一篇学会使用Kafka生产者】
508 4
|
3月前
|
JSON 前端开发 数据格式
前端的全栈之路Meteor篇(五):自定义对象序列化的EJSON介绍 - 跨设备的对象传输
EJSON是Meteor框架中扩展了标准JSON的库,支持更多数据类型如`Date`、`Binary`等。它提供了序列化和反序列化功能,使客户端和服务器之间的复杂数据传输更加便捷高效。EJSON还支持自定义对象的定义和传输,通过`EJSON.addType`注册自定义类型,确保数据在两端无缝传递。
|
3月前
|
消息中间件 存储 Java
大数据-58 Kafka 高级特性 消息发送02-自定义序列化器、自定义分区器 Java代码实现
大数据-58 Kafka 高级特性 消息发送02-自定义序列化器、自定义分区器 Java代码实现
64 3
|
3月前
|
消息中间件 存储 分布式计算
大数据-61 Kafka 高级特性 消息消费02-主题与分区 自定义反序列化 拦截器 位移提交 位移管理 重平衡
大数据-61 Kafka 高级特性 消息消费02-主题与分区 自定义反序列化 拦截器 位移提交 位移管理 重平衡
27 1
|
7月前
|
JSON Java 数据格式
实现自定义序列化和反序列化控制的5种方式
实现自定义序列化和反序列化控制的5种方式
|
7月前
|
存储 分布式计算 Hadoop
MapReduce编程模型——自定义序列化类实现多指标统计
MapReduce编程模型——自定义序列化类实现多指标统计
55 0
|
8月前
|
消息中间件 分布式计算 Kafka
硬核!Apache Hudi中自定义序列化和数据写入逻辑
硬核!Apache Hudi中自定义序列化和数据写入逻辑
167 1
|
8月前
open-feign自定义反序列化decoder
open-feign自定义反序列化decoder
351 0
|
8月前
open-feign自定义反序列化decoder
open-feign自定义反序列化decoder
340 0