小编sta*_*ilk的帖子

自定义协议插件解析不适用于自定义选项

我正在尝试编写一个需要我使用自定义选项的协议插件。我定义了自定义选项,如示例所示(https://developers.google.com/protocol-buffers/docs/proto#customoptions):

import "google/protobuf/descriptor.proto";

extend google.protobuf.MessageOptions {
    string my_option = 51234;
}
Run Code Online (Sandbox Code Playgroud)

我使用它如下:

message Hello {
    bool greeting = 1;
    string name = 2;
    int32 number = 3;

    option (my_option) = "telephone";
}
Run Code Online (Sandbox Code Playgroud)

但是,当我读取已解析的请求时,“Hello”消息的选项字段为空。

我正在执行以下操作来阅读

data = sys.stdin.read()

request = plugin.CodeGeneratorRequest()
request.ParseFromString(data)
Run Code Online (Sandbox Code Playgroud)

当我打印“请求”时,它只是给了我这个

message_type {
  name: "Hello"
  field {
    name: "greeting"
    number: 1
    label: LABEL_REQUIRED
    type: TYPE_BOOL
    json_name: "greeting"
  }
  field {
    name: "name"
    number: 2
    label: LABEL_REQUIRED
    type: TYPE_STRING
    json_name: "name"
  }
  field {
    name: "number"
    number: 3 …
Run Code Online (Sandbox Code Playgroud)

protocol-buffers

2
推荐指数
1
解决办法
1784
查看次数

标签 统计

protocol-buffers ×1