BinaryFormatter alternative

旧街凉风 提交于 2019-12-20 02:15:14

问题


I am shopping for a BinaryFormatter alternative/replacement.

The current issues I have with BinaryFormatter (and the alternatives should address this) are
1) backwards compatibility (can deserialize Classes serialized using an earlier version)
2) size
3) speed

I have checked out AltSerializer which looks ok, some conflicting reports on speed however it looks like it supports backwards compatibility.

I also looked at protobuf-net which looks fantastic except at this stage it would require alot of work as you have to define all the .proto files.

Perhaps someone using either of the above or something else would care to comment.


回答1:


I have since learned that protobuf-net will respect the [DataContract] and [DataMember] attributes (no .protos required) so if your classes are WCF-ready or you want to decorate them with aforementioned attributes then you can use protobuf-net out of the box for your classes.

Some work is obviously required to decorate all your classes (v1 of protobuf requires this) however I understand v2 will be able to able to build the model for your undecorated classes.




回答2:


For backwards compatibility handling: Use any of the IFormatter.Binder, ISerializationSurrogate, OptionalFieldAttribute, IDeserializationCallback API's.

For speed: Try the Gramma.Serialization's FastBinaryFormatter, a replacement for BinaryFormatter, implementing the IFormatter interface, honoring all standard .NET serialization constructs including the above mentioned.




回答3:


There's also Proto# and dotnet-protobufs.



来源:https://stackoverflow.com/questions/3512776/binaryformatter-alternative

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!