2016-03-18 63 views
2

我目前正在使用Google Protocol Buffers並需要生成動態消息。我已經定義了我的.proto文件,如下所示。在運行時動態分析.proto文本文件以生成描述符

message TSInbound 
{ 
    string id = 1; 
    map<string,string> state = 2; 
    map<string,string> reading =3; 
} 

AFAIK,我可以使用文件描述符集創建動態的消息。但是,這將涉及使用編譯器生成desc文件。我想在不編譯.proto文件的情況下生成Descriptor。有沒有一種方法可以使用自定義的.proto文件動態創建消息,而不是使用protoc?

回答

4

我想你會問:「有沒有辦法在運行時動態解析文本.proto以獲取描述符。」

解析器是用C++編寫的。它可以作爲圖書館libprotoc.so。理論上,您可以在此編寫一個JNI包裝來在運行時進行解析。但是,對於.proto文件沒有(官方)純Java解析器。

+0

是的,@ kenton Varda,這正是我想要做的。感謝您的建議 – Ankita