请教一个protobuf的反序列化问题.
我拿到了一个 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;
```