序列化与反序列化

来源:互联网 发布:伦斯勒理工大学知乎 编辑:程序博客网 时间:2024/05/20 20:18

序列化是将对象处理为字节流以存储对象或传输到内存、数据库或文件。 其主要目的是保存对象的状态,以便可以在需要时重新创建对象。 相反的过程称为反序列化。

序列化的工作方式

图:序列化


通过序列化我们能做什么

通过序列化,开发人员可以保存对象的状态,并在需要时重新创建该对象,从而提供对象的存储以及数据交换。 通过序列化,开发人员还可以执行类似如下的操作:通过 Web 服务将对象发送到远程应用程序、将对象从一个域传递到另一个域、以 XML 字符串的形式跨防火墙传递对象,或者跨应用程序维护安全信息或用户特定信息。

有几种序列化的方式


可以使用二进制序列化或 XML 序列化。 在二进制序列化中,会序列化所有成员(甚至包括那些只读成员),从而可以提高性能。 XML 序列化提供了可读性更好的代码,并在对象共享和使用方面提供了更大的灵活性,以便实现互操作性。

ms233843.collapse_all(zh-cn,VS.120).gif二进制序列化

二进制序列化使用二进制编码来生成精简的序列化,以用于存储或基于套接字的网络流等。

ms233843.collapse_all(zh-cn,VS.120).gifXML 序列化

XML 序列化将对象的公共字段和属性或者方法的参数及返回值序列化为符合特定 XML 架构定义语言 (XSD) 文档的 XML 流。 XML 序列化会生成具有转换为 XML 的公共属性和字段的强类型类。 System.Xml.Serialization 包含序列化和反序列化 XML 所需的类。

您可以将特性应用于类和类成员,以控制 XmlSerializer 序列化或反序列化类实例的方式。

ms233843.collapse_all(zh-cn,VS.120).gifSOAP 序列化

XML 序列化还可用于将对象序列化为符合 SOAP 规范的 XML 流。 SOAP 是一种基于 XML 的协议,它是专门为使用 XML 来传输过程调用而设计的。 如同常规的 XML 序列化,特性可用于控制 XML Web services 生成的文本样式的 SOAP 消息。


0 0