简而言之,有没有办法定义一个包含另一个任意类型消息的 protobuf 消息?就像是:
message OuterMsg {
required int32 type = 1;
required Message nestedMsg = 2; //Any sort of message can go here
}
我怀疑有一种方法可以做到这一点,因为在各种 protobuf 实现中,编译的消息从一个公共Message
基类扩展而来。
否则我想我必须为这样的各种消息创建一个通用的基本消息:
message BaseNestedMessage {
extensions 1 to max;
}
然后做
message OuterMessage {
required int32 type = 1;
required BaseNestedMessage nestedMsg = 2;
}
这是实现这一目标的唯一方法吗?