其他分享
首页 > 其他分享> > Protobuf-net-序列化.NET GUID-如何在C语言中阅读此内容?

Protobuf-net-序列化.NET GUID-如何在C语言中阅读此内容?

作者:互联网

我已经在.NET应用程序中使用Protobuf-net相对轻松地序列化了一个对象.
我还使用GetProto()命令获得了protobuf-net生成的.proto文件.

在.NET生成的.proto文件中,我的GUID字段的类型为“ bcl.guid”.

现在,我希望在C中编译.proto文件,以便可以反序列化数据.

但是,C protoc.exe编译器不知道如何解释bcl.guid,并引发错误消息“ VideoAudioStructs.proto:11:13:“ Guid”未定义”.
我该怎么办?

解决方法:

protobuf-net在字段1和2处将其编码为一对固定长度的64位值.我没有出于互操作目的对其进行尝试,但是您可以尝试导入(定制)bcl.proto(我认为这是在部署文件夹;如果没有,请告诉我,我将其添加;否则为in the trunk).

但从概念上讲,它只是:

message guid {
  optional fixed64 lo = 1; // the first 8 bytes of the guid
  optional fixed64 hi = 2; // the second 8 bytes of the guid
}

如果遇到任何问题,后备方法将是通过添加shim属性将其作为字节块发送(而不是作为字节块发送).让我知道您是否想举个例子.

标签:c,net,protocol-buffers,protobuf-net
来源: https://codeday.me/bug/20191013/1909438.html