我们一直在使用BinarySerialization和我们的C#app,但是需要序列化的类的大小和复杂性导致了sloooooow(de)序列化和大文件。
我们怀疑我们应该编写自己的自定义序列化程序;但是protobuf-net声称比标准的.Net二进制序列化具有显着的速度和大小优势,并且可能比大量的定制序列化器更容易添加到我们的应用程序中。
在花费大量时间和精力试图让它为我们工作之前,我很想知道是否有任何交易破坏者。我们正在使用通过接口定义的属性,抽象子类的通用列表,自定义位标记枚举等等。什么会阻止protobuf-net为我们工作?
答案 0 :(得分:6)
protobuf-net尽其所能遵守核心protobuf规范,然后一些(例如,它包括继承),但是:
ICustomer
等);我正在努力改进v2 如果您想要序列化的内容有限,我很乐意看看它是否可行(我是作者)。
答案 1 :(得分:0)
当您必须与现有软件/现有标准进行交互时,这是不合适的。例如,您无法使用它与SMTP服务器通信。
答案 2 :(得分:0)
请在此blog关于protobuf-net阅读此内容,以引用
What’s the catch? In the most part, that’s it. WCF will use protobuf-net for any suitable objects (data-contracts etc). Note that this is a coarser brush than the per-operation control, though (you could always split the interface into different endpoints, of course). Also, protobuf-net does have some subtle differences (especially regarding empty objects), so run your unit tests etc. Note that it only works on the full-fat WCF; it won’t help Silverlight etc, since it lacks the extension features – but that isn’t new here. Finally, the resolver in WCF is a pain, and AFAIK wants the full assembly details including version number; so one more thing to maintain when you get new versions. If anyone knows how to get around this?