【问题标题】:Why BinaryFormatter is named like tha and not BinarySerializer? [closed]为什么 BinaryFormatter 是这样命名的,而不是 Binary Serializer? [关闭]
【发布时间】:2013-02-15 05:58:49
【问题描述】:

我是序列化的新手。我有一个愚蠢的问题: 为什么 BinaryFormatter 被命名为 BinaryFormatter 而不是 BinarySerializer?

更具体地说,如果它正在执行序列化,为什么不将其称为 BinarySerializer ?除了数据序列化之外,它还有什么作用,它应该被称为格式化程序?

【问题讨论】:

  • 一方面,它也进行反序列化。
  • 但是应该是 BinarySerializer .. 为什么要格式化?

标签: .net serialization


【解决方案1】:

为什么?为什么BinarySerializer 会是一个更好的名字?

我没有参与 API 设计团队的审议,但我怀疑它被称为“格式化程序”,因为它格式化从字节流中检索或推送的数据。在序列化和反序列化数据时,您可以使用格式化程序作为帮助对象。

另请注意,有一个 SoapFormatter class 遵循相同的命名方案,并且这两个类都在 System.Runtime.Serialization.Formattersnamespace 中定义。

【讨论】:

  • 那为什么XmlSerializer不叫XmlFormatter呢?
  • 因为它不仅仅是序列化。虽然您可以格式化二进制数据以进行序列化,但您也可以格式化二进制数据以用于其他目的。至少从理论上讲,BinaryFormatter 类可以完成这两件事。
  • 所以你的意思是它并不总是序列化?你能提供一个清晰的例子吗?
【解决方案2】:

我个人同意你的看法 - 它至少会与XmlSerializer 和(后来的)DataContractSerializerJavaScriptSerializer 等更一致。也许他们觉得它不同,因为它用于远程处理,但最终它所做的是序列化和反序列化。

但是:命名很难。或许就这么简单。

【讨论】:

  • 谢谢 Marc ...至少我意识到我不是唯一一个遭受这种困惑的人...根据我对 Cody Gray 的观察,他根本不懂序列化,只是为为了写作!!
  • @user1401198 这有点粗鲁(对科迪),而且没有必要。在许多方面,这两个术语是可以互换的。在这种情况下,命名只是不一致,并非完全不正确。
  • 没什么粗鲁的……他在误导人……那不好……
猜你喜欢
  • 2016-04-12
  • 2021-06-08
  • 1970-01-01
  • 2020-08-25
  • 1970-01-01
  • 1970-01-01
  • 2018-08-15
  • 1970-01-01
  • 2011-09-25
相关资源
最近更新 更多