编程复盘(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<Msg1>();//这样这个接口就可以传递泛型啦!!!

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • [Protobuf2](http://colobu.com/2015/01/07/Protobuf-languag...
    aZ_be5e阅读 449评论 0 0
  • 定义一个消息类型指定字段类型分配标识号指定字段规则添加更多消息类型添加注释保留标识符(Reserved)从.pro...
    MrChenyz阅读 2,424评论 0 0
  • 英文原文:Language Guide (proto3)[https://developers.google.co...
    岑吾阅读 457评论 0 6
  • 翻译查阅外网资料过程中遇到的比较优秀的文章和资料,一是作为技术参考以便日后查阅,二是训练英文能力。此文翻译自 Pr...
    401阅读 68,441评论 1 39
  • 由于工程项目中拟采用一种简便高效的数据交换格式,百度了一下发现除了采用 xml、JSON 还有 ProtoBuf(...
    黄海佳阅读 48,851评论 1 23