开发者

Protobuf-net - serializing .NET GUID - how to read this in C++?

开发者 https://www.devze.com 2022-12-21 15:40 出处:网络
I have serialized an object using Protobuf-net , in my .NET application, with relative ease. I also get the .proto file that protobuf-net generated, using GetProto() command.

I have serialized an object using Protobuf-net , in my .NET application, with relative ease. I also get the .proto file that protobuf-net generated, using GetProto() command.

In the .NET generated .proto file, my GUID fields get a type of "bcl.guid".

Now I wish to compil开发者_Python百科e the .proto file in C++ so I can deserialize the data.

However, C++ protoc.exe compiler does not know how to interpret bcl.guid, and throws an error message "VideoAudioStructs.proto:11:13: "Guid" is not defined." What do I do with this?


protobuf-net encodes this as a pair of fixed-length 64 bit values at fields 1 and 2. I haven't tried it for interop purposes, but you could try importing the (bespoke) bcl.proto (I think this is in the deployment folder; if not let me know and I'll add it; otherwise it is in the trunk).

But conceptually it is just:

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

If you get any problems, a fallback approach would be to send it (instead) as a bytes chunk, by adding a shim property. Let me know if you want an example of that.

0

精彩评论

暂无评论...
验证码 换一张
取 消