【问题标题】:BinaryFormatter alternativeBinaryFormatter 替代品
【发布时间】:2011-03-31 13:52:45
【问题描述】:

我正在购买 BinaryFormatter 替代品/替代品。

我在 BinaryFormatter 上遇到的当前问题(替代方案应该解决这个问题)是
1) 向后兼容性(可以反序列化使用早期版本序列化的类)
2) 尺寸
3) 速度

我检查了 AltSerializer,它看起来不错,一些关于速度的报告相互矛盾,但它看起来支持向后兼容性。

我还查看了protobuf-net,它看起来很棒,但在这个阶段需要大量工作,因为您必须定义所有 .proto 文件。

也许有人使用上述任何一种或其他东西会愿意发表评论。

【问题讨论】:

  • 为什么 kbrimington 出现“已编辑”?
  • answer) 您添加了我看到的标签。谢谢

标签: .net serialization binaryformatter


【解决方案1】:

对于向后兼容性处理:使用任何 IFormatter.Binder、ISerializationSurrogate、OptionalFieldAttribute、IDeserializationCallback API。

为了速度:试试Gramma.Serialization 的 FastBinaryFormatter,它是 BinaryFormatter 的替代品,实现了IFormatter 接口,支持所有标准的 .NET 序列化结构,包括上面提到的。

【讨论】:

    【解决方案2】:

    从那以后我了解到 protobuf-net 将尊重 [DataContract] 和 [DataMember] 属性(不需要 .protos),因此如果您的类已准备好 WCF 或者您想用上述属性装饰它们,那么您可以使用 protobuf -net 为您的课程开箱即用。

    显然需要做一些工作来装饰你的所有类(protobuf 的 v1 需要这样做)但是我知道 v2 将能够为你的未装饰的类构建模型。

    【讨论】:

      【解决方案3】:

      还有Proto#dotnet-protobufs

      【讨论】:

      • 它们还需要相当多的初始开销才能开始(.proto 定义)。
      • 在为Proto# 提供的示例中,我没有看到任何.proto 定义。
      • 啊抱歉,我昨天确实看过 Proto,它处于 alpha 阶段,尚未准备好生产。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-29
      • 2011-06-10
      • 2014-04-18
      • 2012-04-08
      相关资源
      最近更新 更多