我希望能够发送/接收任意类型的值。起初,我认为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:无法将“string”转换为“Google.Protobuf.IMessage”。