.NET 中的序列化

序列化是将对象的状态转换为可持久保存或传输的形式的过程。 序列化的补充是反序列化,它将流转换为对象。 这些过程一起允许存储和传输数据。

.NET 具有以下序列化技术:

  • JSON 序列化 将 .NET 对象映射到 JavaScript 对象表示法(JSON)。 JSON 是一种开放标准,通常用于跨 Web 共享数据。 JSON 序列化程序默认序列化公共属性,并且可以配置为序列化私有成员和内部成员。

  • XML 和 SOAP 序列化public 序列化属性和字段,并且不保留类型保真度。 如果要提供或使用数据,而不限制使用该数据的应用程序,这非常有用。 由于 XML 是一种开放标准,因此它是跨 Web 共享数据的一个有吸引力的选择。 SOAP 同样是一个开放的标准,这使得它成为一个有吸引力的选择。

  • 二进制序列化 保留 类型保真度,这意味着将记录对象的完整状态,并在反序列化时创建确切的副本。 这种类型的序列化对于在应用程序的不同调用之间保留对象的状态很有用。 例如,可以通过将对象序列化到剪贴板,在不同的应用程序之间共享对象。 可以将对象序列化到流、磁盘、内存、网络等介质。 远程处理使用序列化将对象“按值”从一台计算机或应用程序域传递到另一台计算机。

    警告

    使用 BinaryFormatter 的二进制序列化可能很危险。 有关详细信息,请参阅 BinaryFormatter 安全指南BinaryFormatter 迁移指南

参考文献

System.Text.Json
包含可用于将对象序列化为 JSON 格式文档或流的类。

System.Runtime.Serialization
包含可用于序列化和反序列化对象的类。

System.Xml.Serialization
包含可用于将对象序列化为 XML 格式文档或流的类。