防止Protobuffer重命名字段(类,成员,枚举项)

时间:2017-06-02 14:55:55

标签: protocol-buffers protoc

我正在尝试将项目从Google Protocol Buffers 3.0.0-beta-2移植到3.1.0。重新编译我的.proto文件后,我注意到由于protoc强制执行我没有选择的编码标准并相应地重命名字段,因此项目中出现了许多编译错误。我不想重命名,例如项目内MDDataMddataXYServerXyserver,因为缩写的预期含义现在已丢失,可能会在未来的协议缓冲版版本中发生变化。

到目前为止,我在C#部分已经看到过这种行为,并且不确定生成的C ++代码是否也是如此。

TL; DR:

有没有办法在Google协议缓冲区的Proto编译器(并保留我自己的格式)字段中禁用自动代码样式更改?

1 个答案:

答案 0 :(得分:0)

没有办法强制编写自己的代码生成器。只有存根的公共API被认为是稳定的。

引擎盖下,protoc编译器每次都从头开始重新生成代码,因此无法知道文件的原始样式。它需要与原始生成的文件一起传递,以便执行此操作。

也就是说,如果你想修改代码生成器,那肯定是可能的。