7
4

1 に答える 1

4

あなたは基本的にそれを理解したようです。

実際には一般向けに設計されていないプロトコル コンパイラ内の API に深く入り込んでいます。物事を単純化するためのヘルパー レイヤーを作成した人がいないため、複雑になります。これらの機能を使用する人は多くないためです。

Message「神クラス」という意味がよくわかりません。Messageは、protobuf インスタンスの単なる抽象インターフェイスです。記述子は、protobuf インスタンスのタイプを記述します。Message::getDescriptor()メッセージのタイプを返しますが、それを超えて、これらの API 間の直接的な接続はあまりありません...

FileDescriptorSet を使用せずにソース情報を含める方法はありませんか?

コメントは、生成されたコードに埋め込まれた記述子から意図的に削除されるため、パーサーを個別に実行し、記述子セットを生成し、動的に使用する必要があります。

FileDescriptorSet を具体的な Message クラス/インスタンスに「接続」/設定することは可能ですか?

ソースファイルからのコメントデータを含む記述子を Message::getDescriptor() に返してほしいということですか? そのためには、コメント データを生成されたコードに埋め込む必要があり、これprotocを実装するのは簡単ですが (現在は意図的にそれらを取り除いているため、そうしなくてもよいでしょう)、肥大化して危険な可能性があります (秘密が明らかになる可能性があります) protobufs でビルドされたクローズドソースのバイナリを出荷する人々)。

于 2015-09-25T05:40:51.737 に答える