4

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

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

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

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

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

4

3 回答 3

1

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

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

于 2010-08-20T04:30:27.940 回答
1

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

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

于 2014-03-27T03:42:16.150 回答
0

还有Proto#dotnet-protobufs

于 2010-08-18T13:58:37.017 回答