C# - 将对象列表序列化为文件的最佳方法是什么?

C# - What is the best way to serialize list of objects to files?

我看到了一些技巧:

  1. 使用 XmlSerializer 和 system.IO.File 序列化为 XML 文件 class
  2. 使用 XmlSerializer 和 streamWriter 序列化为 XML 文件
  3. 使用 BinaryFormatter 和 File 序列化为 bin 文件 Class

它们有什么区别吗?

谢谢

在 1 和 2 之间输出没有区别你会得到一个xml文件结构,看起来像这样人类可读

<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<myList>
   <object>1</object>
   <object>2</object>
</myList>

对于 3 个二进制文件,您的对象将存储在 binary format 这意味着 机器可读 ,并且看起来像这样

100101010111010101110101010...10101

结论:如果你想让其他人(或你)阅读你的序列化数据去xml,如果你不关心可读性去binary.

选项 1 和 2 基本相同,将 XML 序列化为 stream/file。 #3 会写出比其他选项小得多的占用空间。