动态创建新的 protobuf 消息
Dynamically create a new protobuf message
>假设我有一个消息A,我想动态创建一个新的消息B,它应该包含A中的所有字段和一个字段(不包含在A中),如何在protobuf中执行此操作?
首先,查看 descriptor.h
中定义的类型。这些"描述符"描述了Protobuf类型。您可以通过创建一个FileDescriptorProto
(基本上是.proto
文件的 AST;请参阅descriptor.proto
)然后使用 DescriptorPool
将其"编译"为FileDescriptor
来动态创建一个。这反过来将包含文件中定义的每种类型的Descriptor
。
获得动态生成的类型的Descriptor
后,可以使用DynamicMessage
动态构造该类型的消息对象。您可以使用Reflection
界面动态访问此消息的字段。
相关文章:
- 从 Any 包中提取和匹配 protobuf 消息类型名的首选方法
- protobuf,如何在protobuf消息中遍历所有集合字段,我不知道详细信息?(C++)
- 如何聚合protobuf消息
- C ++使用开关/大小写解析protobuf消息(减少重复代码)
- 编写多个 protobuf 消息:1 条具有 1 个重复属性的消息或编写不同的消息
- 动态生成Protobuf消息并将指针返回到它
- 在C++中更改现有protobuf消息的元素
- 将在64位应用程序中编码Protobuf消息并在32位应用程序中解码
- 解析来自固定大小字节缓冲区的连续块的protobuf消息序列
- C++中protobuf消息的长度前缀
- 是否可以在 protobuf 中发送编译的 protobuf 消息定义
- 遍历所有字段并在 protobuf 消息中获取它们的值
- 动态创建新的 protobuf 消息
- protobuf-net 中的动态 protobuf 消息
- 如何在解析文本格式的 protobuf 消息时忽略错误的字段
- 在Windows上从文件中读取多个分隔的protobuf消息
- 从部分google protobuf消息中检索信息
- 打印Protobuf消息时省略字段
- 通过winpcap API读取protobuf消息
- 在Java中编写带分隔符的c++ Protobuf消息和读取