对C#和C ++项目使用相同的.proto文件

时间:2010-07-12 10:18:17

标签: c# c++ protocol-buffers

我试图将相同的.proto文件(protobuf)用于C#和C ++项目。我的问题是C#文件需要导入和一些选项设置(protobuf-csharp-port),而C ++文件则不需要。

在某些情况下,有什么方法可以告诉protoc忽略导入/选项吗?

目前我唯一的办法是创建两个不同的.proto文件,并在进行更改时更新这两个文件。

2 个答案:

答案 0 :(得分:2)

啊,这个栗子:(

是的,这很痛苦。不,我现在没有一个非常好的方式围绕它。我想说一句,“这个导入的文件仅用于扩展选项,并且可以假定这些扩展可用:包含描述符集中的值,但不要尝试解析扩展。”不幸的是,没有办法做到这一点。

可以做的只是在构建C ++版本时包含C#选项,并且最终会得到C#选项的C ++表示。它不漂亮,但它实际上不会造成任何伤害。我实际上并没有在C ++中完成这个任务,但是我之前就已经为C#选项生成了Java文件。

如果您对如何更改C#端口有任何其他建议以改善这一点,我会有兴趣听到它们......

答案 1 :(得分:0)

您是否可以在没有导入的情况下使用原始文件,然后使用需要导入和导入原始文件的C#原型文件?