首页 文章

protobuf-net与C通信

提问于
浏览
3

我正在寻找protobuf-net来实现各种消息传递格式,我特别喜欢基于 Contract 的方法,因为我不必乱用原型编译器 . 我无法找到有关信息的一件事是,这是否难以跨平台工作?有一些C应用程序需要能够解析PB数据,虽然我知道protobuf-net序列化为PB标准格式,如果我使用 Contract 方法而不是原型文件,C端如何解析数据?

可以(应该?)我为(很少)C需要理解数据的情况写一个单独的原型文件?如果是这样,我究竟知道从proto文件生成的C类是否与来自无原型文件C#端的数据相匹配?

1 回答

  • 1

    是的,理论上至少它们应该在二进制级别匹配,但是你可能想要将自己限制为仅仅映射到".proto"的类型 - 所以要避免像 DateTime ,继承( [ProtoInclude] )等等 . 这也有你应该的优点能够使用:

    string proto = Serializer.GetProto<YourType>();
    

    得到.proto;它( GetProto )不是100%,但它适用于基本类型 . 但最终,答案是"testing and tweaking";也许从一开始就设计互操作 - 即尽早测试 .

相关问题