C# 中 DataContractSerializer 的用法

· 约 4 分钟读完 · 第 64 / 183 章

推荐答案

本题详细解读

DataContractSerializer 概述

DataContractSerializer 是 .NET 中用于序列化和反序列化对象的类。它主要用于将对象转换为 XML 格式,以便存储或传输,并且可以从 XML 格式中重新构造对象。

使用步骤

  1. 定义数据契约:使用 [DataContract] 和 [DataMember] 属性标记类和成员。[DataContract] 用于标记类,[DataMember] 用于标记需要序列化的属性或字段。

  2. 创建对象:实例化一个需要序列化的对象。

  3. 序列化对象:

    • 创建 DataContractSerializer 实例,指定要序列化的对象类型。
    • 使用 WriteObject 方法将对象序列化到流中(如文件流、内存流等)。
  4. 反序列化对象:

    • 使用 ReadObject 方法从流中读取 XML 数据并反序列化为对象。

代码解析

  • Person 类:这是一个简单的类,包含两个属性 Name 和 Age,并使用 [DataContract] 和 [DataMember] 标记。
  • 序列化:将 Person 对象序列化为 XML 并保存到文件 person.xml 中。
  • 反序列化:从 person.xml 文件中读取 XML 数据并反序列化为 Person 对象。
  • 输出:打印反序列化后的对象属性,验证序列化和反序列化的正确性。

注意事项

  • DataContractSerializer 默认使用 XML 格式,但也可以通过配置使用其他格式。
  • 只有标记了 [DataMember] 的成员才会被序列化。
  • 序列化和反序列化的类型必须一致,否则会抛出异常。