请教一个protobuf的反序列化问题.

wzy2687 · · 221 次点击 · 开始浏览    置顶
我拿到了一个 proto的名称 和 序列化后的数组. 如何反序列化出来. 例如 name := "proto.HeartBeatReq" byf :=[] ........ 如何创建一个 name 对应的对象,然后反序列化. 相当于实现一个函数 ``` func ToObj(name sring , buf []Byte) message{ // how to write this function } ``` Unmarshal 方法会用,但是需要一个具体对象作为参数. 在go 中该如何创建该对象. c++ 中是可以做到的. 例如 ``` google::protobuf::Message* message = NULL; const google::protobuf::Descriptor* descriptor = google::protobuf::DescriptorPool::generated_pool()->FindMessageTypeByName(typeName); if (descriptor) { const google::protobuf::Message* prototype = google::protobuf::MessageFactory::generated_factory()->GetPrototype(descriptor); if (prototype) { message = prototype->New(); } } return message; ```
221 次点击  
加入收藏 微博
5 回复  |  直到 2018-01-11 17:28:54
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传