用于序列化C ++和反序列化为C#类的协议缓冲区

时间:2012-10-25 06:11:24

标签: c# c++ protocol-buffers binary-serialization

是否可以在C ++中对类进行序列化并使用协议缓冲区将其反序列化为C#中的类似类?我已经尝试过Json序列化来克服不同平台中的序列化问题,但它在某些数据类型(例如数组列表等)上存在问题。那么有关使用google协议缓冲区的任何建议吗?

1 个答案:

答案 0 :(得分:6)

Protocol Buffers将允许您描述数据结构,并将其序列化/反序列化为C ++,Java,C#和其他平台中的对象。您(通常,无论如何)都不会序列化您自己的类的实例 - 您序列化生成的类的实例。 (我知道protobuf-net允许你用描述如何将它们序列化为协议缓冲区的属性来装饰你自己的类,而不是必须使用生成的类。我不知道是否已经用C ++完成了。)

目前尚不清楚这是否真的符合您的要求,但是protobufs肯定允许跨平台数据交换。它在数据可以序列化方面确实存在局限性 - 它们都是相当原始的,并且你可以从原始数据构建更复杂的结构。如果您已经在代码中获得了数据模型,然后必须在协议缓冲区中重新实现它,那可能会令人沮丧,但它确实有用......