我在.proto文件中有一个枚举Update update
。我想在消息中使用 reflection 存储它。
refl->SetEnum (msg, fd , ??? );
???? - 应该是EnumValueDescriptor *(我不知道如何获得它)
我该怎么做?
我尝试了message_desc->FindEnumTypeByName(s)->FindValueByNumber(update)
以获得许多不同的可能性:
UpdateType
UpdateType::CONFIRM
CONFIRM
....
....
答案 0 :(得分:1)
第三个参数中需要的只是EnumValueDescriptor *。
另外正如您所看到的,您已在第二个参数中传递了FieldDescriptor。因此,只需使用FieldDesciptor :: enum_type()获取EnumDescriptor *,然后使用EnumDescriptor :: Value()获取EnumValueDescriptor。