当前位置: 首页 > 知识库问答 >
问题:

将C序列化并反序列化为C#类的协议缓冲区

洪经义
2023-03-14

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

共有1个答案

何宏博
2023-03-14

协议缓冲区将允许你描述一个数据结构,并将其序列化/反序列化到C、Java、C#和其他平台中的对象。你不需要(通常情况下)序列化你自己的类的实例,而是序列化生成的类的实例。(我知道协议缓冲区允许你用描述如何将它们序列化到协议缓冲区的属性来装饰你自己的类,而不必使用生成的类。我不知道在C中是否有这样做。)

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

 类似资料:
  • 这就是我想要实现的: > 在Proc#1中使用google协议缓冲区建模对象 使用proto-buf序列化该对象,并将其发送到posix消息队列。 在Proc#2中读取流并将其反序列化为类似的模型,同时使用协议缓冲区。 换句话说: 进程1中的对象-- 问题是Proc#1和Proc#2可能是完全不同的语言平台。程序#1通常是C与g相一致的。但是Proc#2可以是任何东西:Python、Java等等。

  • 我有kafka集群接收消息。消息是一个字节数组的zip文件。zip文件包含二进制的原型数据文件作为条目。我正在读取zip文件,并试图反序列化的原型条目,这就是我的代码是打异常。 在将二进制protobuf文件作为压缩字节数组发送到代理之前,我能够对其进行反序列化。 但是,当我压缩这些二进制protobuf文件,向kafka生成消息,使用它,然后尝试反序列化zip流中的条目时,我面临着一些问题。 我

  • 问题内容: 我需要将Objective- C对象序列化和反序列化为JSON以存储在CouchDB中。人们是否有通用解决方案最佳实践的示例代码?我看了几个JSON框架,它们在NSDictionary / NSArray级别停止了。即,许多框架会将NSDictionary / NSArray序列化和反序列化为JSON。但是我仍然要做将NSDictionary转换为Objective-C对象的工作。 为

  • SOFARPC 可以在使用 Bolt 通信协议的情况下,可以选择不同的序列化协议,目前支持 hessian2 和 protobuf。 默认的情况下,SOFARPC 使用 hessian2 作为序列化协议,如果需要将序列化协议设置成 protobuf,在发布服务的时候,需要做如下的设置: <sofa:service ref="sampleService" interface="com.alipay.

  • 我想解析这个json文件。 {“特征”:[{“类型”:“特征”,“几何”:“{“类型”:“多边形”,“坐标”:[[26.4217861898109,40.127607984644],[26.4219934821323,40.1275230229872],[26.4218810759267,40.1273800013679],[26.4216801413981,40.1274730404221],[

  • 我不熟悉协议缓冲区,正在使用VS2010的protobuf net。从我在这里阅读的协议缓冲区中的字典来看,protobuf似乎不能用对象类型作为值序列化字典。但我在他的网站上读到: 类型注释 支持: 自定义类:被标记为数据契约有一个Silverlight的无参数构造函数:是公共的许多常见原语等单维数组:T[]List/IList字典/IDiction-任何类型,它实现了IENumable并具有一