【问题标题】:C# - What is the best way to serialize list of objects to files?C# - 将对象列表序列化为文件的最佳方法是什么?
【发布时间】:2015-03-27 14:54:11
【问题描述】:

我看到了一些技巧:

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

它们之间有什么区别吗?

谢谢

【问题讨论】:

    标签: .net serialization


    【解决方案1】:

    选项 1 和 2 基本相同,将 XML 序列化为流/文件。 #3 会比其他选项写入更小的足迹。

    【讨论】:

    • 那么更好的方法是使用 BinaryFormatter 类而不是 XmlSerialization ?还有其他更好的吗?谢谢。
    • 视情况而定,我会使用二进制通过网络传输,但如果您希望能够实际查看输出,那么 XML 很好,但它很胖......二进制总是比编写自己的二进制序列化程序之外的任何其他选项都更有效。
    • 好的,非常感谢 :) !
    • @RonenB 如果你想让别人读取你的序列化数据,你可以去xml如果你不关心可读性去binary
    • @adricadar - 我将使用二进制文件。我不需要其他人阅读它,只需在信息更改期间将对象列表保存到文件中,并在程序启动时将其“拉”回来。这是我正在做的一个小项目——我是一个新的 c# 程序员。谢谢你:)
    【解决方案2】:

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

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

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

    100101010111010101110101010...10101
    

    结论:如果您希望其他人(或您)读取您的序列化数据,请转到xml,如果您不关心可读性,请转到binary

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-31
      • 2021-10-24
      • 2010-09-27
      • 1970-01-01
      • 2015-01-09
      • 2010-11-06
      相关资源
      最近更新 更多