У меня .proto
вот так:
message Error {
string code = 1;
string message = 2;
repeated google.protobuf.Any details = 3;
}
Я ожидаю, что details
будет массивом значений любого формата (т. Е. [1,2,3] или ['a', 'b', 'c'])
Но когда я назначаю список значений деталям, я получаю сообщение об ошибке, как показано ниже:
details = "Exception calling application: Parameter to MergeFrom() must be instance of same class: expected google.protobuf.Any got int."
debug_error_string = "{"created":"@1558948332.746657539","description":"Error received from peer ipv6:[::]:9000","file":"src/core/lib/surface/call.cc","file_line":1041,"grpc_message":"Exception calling application: Parameter to MergeFrom() must be instance of same class: expected google.protobuf.Any got int.","grpc_status":2}"
И как буфер протокола Документация гласит:
Любой тип сообщения позволяет использовать сообщения как встроенные типы без
имея свое определение .proto. Any содержит произвольный
сериализованное сообщение в байтах вместе с URL, который действует как глобально
уникальный идентификатор и соответствует типу этого сообщения. Чтобы использовать
Любой тип, вам нужно импортировать google / protobuf / any.proto.
Есть ли здесь что-то, что я пропускаю? Почему это не работает, как ожидалось?