我想发送/接收任意类型的值。起初,我认为 Any
类型会允许 string
int32
等类型,但似乎该类型必须实现 IMessage
来打包或解包。>
有没有办法将 string
转换为 Any
,反之亦然?
如果没有,是否有其他方法允许消息中的任意类型?
例如
syntax = "proto3";
import "google/protobuf/any.proto";
package Engine;
message SomeMessage {
string Id = 1;
google.protobuf.Any AttributeValue = 2;
}
这段代码在 C# 中给出了一个编译错误。
var someMessage = new SomeMessage
{
Id = "123",
AttributeValue = Any.Pack("Test")
};
<块引用>
参数 1:无法从“字符串”转换为“Google.Protobuf.IMessage”
答案 0 :(得分:3)
看起来答案可能是 Value
类型。
syntax = "proto3";
import "google/protobuf/struct.proto";
package Engine;
message SomeMessage {
string Id = 1;
google.protobuf.Value AttributeValue = 2;
}