编程复盘(2)-GRPC中如何使用泛型编程

这里关键的一点是要导入Google的的any.proto文件。如下的proto 文件:

import "google/protobuf/any.proto"

Service Hello{
rpc SayHello(MsgInfoBase)returns(google.protobuf.empty){};
}

message MsgInfoBase{
string id=1;
google.protobuf.any Data=2;//这样就可以传递任意类型了。如Msg1,Msg2
}

message Msg1{
string Content=1;
bool result=2;
}

message Msg2{
string Name=1;
bool result=2;
}

客户端上传

MsgInfoBase msg = new MsgInfoBase();
Msg1 m1 = new Msg1();
msg.Data = Any.pack(m1);

服务端解析泛型类型

Msg1 m1=request.Data.Unpack();//这样这个接口就可以传递泛型啦!!!

你可能感兴趣的:(编程复盘(2)-GRPC中如何使用泛型编程)