Protocol buffers 如何编写protobuf的内联数组

Protocol buffers 如何编写protobuf的内联数组,protocol-buffers,Protocol Buffers,我使用谷歌的ProtoBuf,设置了很多值,如下所示: optional string force_sampling = 1; optional string status = 2; optional string host = 3; optional string server_addr = 4; optional string server_port = 5; optional string client_addr

我使用谷歌的ProtoBuf,设置了很多值,如下所示:

optional string  force_sampling  = 1;
optional string  status          = 2;
optional string  host            = 3;
optional string  server_addr     = 4;
optional string  server_port     = 5;
optional string  client_addr     = 6;
optional string  request         = 7;
optional string  msec            = 8;
optional string  request_time    = 9;
optional string  logid           = 10;
optional string  request_body    = 11;
optional string  response_body   = 12;
optional string  other           = 100;
因此,当我为一条消息设置一个值时,我编写了许多结构,如下所示:

set_logid(); set_request_body(); set_other(); set_request_body(); etc.
我能有一个更简单的方法吗? 例如,类似于:

array way={"set_logid","set_other"}
for (;i = 0;i < len)
{
  sample.way[i]()
}
array way={“set\u logid”,“set\u other”}
对于(;i=0;i

顺便说一下,
set\u logid
是内联的

您可以使用
Message::GetReflection()
函数,并使用它按字符串中给定的名称访问字段

文件如下:

然而,这将变得更慢、更复杂,因此可能不值得这么做