.net 二进制格式化程序替代方案

.net 二进制格式化程序替代方案,.net,serialization,binaryformatter,.net,Serialization,Binaryformatter,我正在购买二进制格式化程序的替代品/替换品 我目前在BinaryFormatter方面遇到的问题(备选方案应该解决这个问题)是 1) 向后兼容性(可以反序列化使用早期版本序列化的类) 2) 大小 3) 速度 我已经检查了AltSerializer,它看起来还可以,一些关于速度的冲突报告,但是它看起来支持向后兼容 我还研究了哪些看起来很棒,除了在这个阶段需要做很多工作,因为您必须定义所有的.proto文件 也许有人会使用上述内容或其他内容发表评论。还有和。我了解到protobuf net将尊重[D

我正在购买二进制格式化程序的替代品/替换品

我目前在BinaryFormatter方面遇到的问题(备选方案应该解决这个问题)是
1) 向后兼容性(可以反序列化使用早期版本序列化的类)
2) 大小
3) 速度

我已经检查了AltSerializer,它看起来还可以,一些关于速度的冲突报告,但是它看起来支持向后兼容

我还研究了哪些看起来很棒,除了在这个阶段需要做很多工作,因为您必须定义所有的.proto文件


也许有人会使用上述内容或其他内容发表评论。

还有和。

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


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

对于向后兼容性处理:使用任何IFormatter.Binder、iSerializationSubrogate、OptionalFieldAttribute、,IDESerializationCallbackAPI


为了提高速度:尝试使用的FastBinaryFormatter,它是BinaryFormatter的替代品,实现接口,遵守所有标准的.NET序列化构造,包括上述内容。

它们还需要相当多的初始开销来运行(.proto定义).在为
Proto#
提供的示例中,我没有看到任何
.Proto
定义。啊,对不起,我昨天确实看过Proto,它是alpha格式的,还没有准备好生产。为什么kbrimington显示为“已编辑”?答案)您添加了一个标记,我看到了。谢谢