2

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

4

1 回答 1

6

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

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

于 2012-10-25T06:14:22.217 回答