南京软件定制开发

南京倾心软件欢迎您访问本站

13605185909

新闻资讯

NEWS CENTER
栏目导航

南京软件开发之类的序列化与反序列化

发布时间:Mar 01, 2021         已有 人浏览

什么是序列化以及如何实现序列化?

序列化是通过将对象转换为字节流,从而存储对象或将对象传输到内存,数据库或文件的过程。主要用途是保存对象的状态,包括对象的数据,以便能够在需要是重建对象。反向过程称为 反序列化。

 

如上图所示,对象 object 被序列化为 流,其中不仅包含数据、还包含对象类型的相关信息,如版本、区域性和程序集名称。然后可以将此流中的内容存储到数据库、文件或内存中。

序列化的用途:

通过序列化,可以执行如下操作:通过 Web 服务将对象发送到远程应用程序、在域之间传递对象、以 XML 字符串的形式传递对象通过防火墙、跨应用程序维护安全性或用户专属信息。

让对象可序列化:

需要具有对象、包含已序列化对象的一个流,以及一个 Fromatter。

System.Runtime.Serialization 包含序列化和反序列化对象所必须的类。

将 SerializableAttribute 特性应用于某个类型,以表示此类型的实例可以被序列化,如果对没有 SerializableAttribute 特性的类型进行序列化,则会引发异常。

如果想让类中的某个字段不可序列化,可以使用 NonSerializedAttribute 特性。

序列化的三种类型--二进制、XML、JSON

可以使用二进制 binary 或 XML 进行序列化,在 二进制序列化中,所有内容都会被序列化,且性能也很好,使用二进制编码来生成精简的序列化,可以用于基于存储或socket的网络流。

XML 序列化可提高可读性,以及对象共享和使用的灵活性,XML 序列化将对象的公共字段和属性或方法的参数和返回值序列化成符合特定 XML 格式的流,

System.Xml.Serialization 包含序列化和反序列化 XML 所需要的类

保存成二进制数据流.用法示例:


序列化:

反序列化:

Copyright © 2020-2022 南京倾心软件技术有限公司 版权所有     苏ICP备2020070309号-1
QQ在线咨询
13605185909
返回顶部