在运行时编译proto文件

时间:2011-01-26 22:46:32

标签: c# dynamic runtime protocol-buffers

我正在使用通用的protobuf解码器,其工作原理如下:

用户可以在运行时指定.proto文件并指定数据文件,程序将根据.proto定义显示文件中的数据。

要做到这一点,最明显的事情似乎是我需要解释.proto文件(或编译它),然后使用它解码protobuf消息。关于如何进行此操作的任何想法?那里有一个图书馆可以帮助我。

与往常一样,任何反馈都非常感谢。

谢谢!

1 个答案:

答案 0 :(得分:1)

我有意义编写自己的解析器,但现在我只是使用“protoc”将.proto解析为protobuf二进制文件。然后我使用我自己的protobuf库反序化,给我一个可以使用的填充对象模型。

我不知道你走了多远,但你可能也对protobuf-net v2中的一些运行时支持感兴趣,它允许将protobuf数据实时映射到类型。另外,还有一个可以重复使用的读者实现,可能适合您的需求。

如果你可以使用XML,我在protobuf-net中包含一个工具,“protogen”,它代码生成;但传入-t:xml,它应该将.proto转换为XML。

Iirc,“protoc”使用google软件包中的“descriptor.proto”输出一个protobuf。