我正在使用C++处理协议缓冲区。我的消息只有一个扩展范围。我想访问所有扩展字段,但不知道它们的名称,只知道它们的编号。我应该怎样做呢?
message Base {
optional int32 id = 1;
extensions 1000 to 1999;
}
extend Base{
optional int32 id2 = 1000;
}
到目前为止,我已经获得了ExtensionRange。
const google::protobuf::Descriptor::ExtensionRange* rng = desc->extension_range(0);
std::cerr << "rng " << rng->start << " " << rng->end << std::endl;
但是我不知道如何获取扩展的 Fielddescriptor*
。
有一件奇怪的事情就是 extension_count()
返回 0。虽然我已经在我的 .proto 文件中使用了扩展。同样,FindExtensionBy[Name/number]
的工作效果也不尽人意?