在 C# 中,我们从 protobuf-net 获得的 .proto 中有命名空间,但没有任何命名空间。所以问题是如何使 protobuf-net 生成(并在内部使用)带有命名空间/包的 .proto 文件。
例如,当我们解析所有项目以制作 .proto 文件以将 C++ 应用程序连接到我们的 C# 应用程序时,我们得到了大量的
enum AnimationCode {
None = 0;
Idle = 1;
//...
}
和
enum SessionCode {
None = 0;
//...
}
因此,当我们将统一项目 .proto 文件提供给 protogen 编译器时,我们得到了大量
枚举类型“SessionStateCode”没有名为“None”的值。
和
请注意,枚举值使用 C++ 范围规则,这意味着枚举值是其类型的兄弟,而不是其子类型。
并且没有 C++ 代码。
重点是使编码的 C# 消息至少可以从 C++ 读取