.net中的序列化

文章目录

        • 不同的序列化技术
          • 二进制序列化
          • xml和Soap
          • Json序列化
        • ISerializable说明
        • Serializable 说明

不同的序列化技术

二进制序列化
  • 保存类型保真。
  • System.Runtime.Serialization 包含可用于序列化和反序列化对象的类
xml和Soap
  • 只会序列化公共属性和字段,并且不会保留类型保真
  • System.Xml.Serialization 用于将对象序列化为Xml格式的文档的类
  • 二进制和xml序列化的实现
  • 基本自定义
  • 基本序列化使用.Net自动序列化对象,唯一要求是类应用SerializableAttribute 特性
  • 在自定义序列化中,可以精确指定要序列化的对象以及具体执行方式。类必须被标记为SerializableAttribute,并且实现ISeriablizable接口
Json序列化
  • 只序列化公共属性,不会保留类型保真
  • System.Text.Json 包含将对象序列化为Json格式的类

ISerializable说明

  • 通过 ISerializable 接口,类可以执行其自己的序列化行为。

Serializable 说明

  • 当你序列化一个对象时候,如果没有标注这个特性就会引发异常【可能序列化的任何类都必须标记为SerializableAttribute】
  • 你可以实现ISerializable接口来替代序列化进程
  • 这个特性默认是序列化所有私有和公共字段
  • 可以通过NonSerializedAttribute特性来排除某一个字段
  • 请注意,无法继承 Serializable 属性。 如果从 MyObject 派生新类,新类也必须标记为以上特性,否则将无法序列化。

你可能感兴趣的:(C#)