問題タブ [protogen]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1056 参照

c# - protogenを使用してファイルごとに1つのC#クラスを出力しますか?

単一の.protoファイルに基づいてprotogenに複数のファイル(クラスごとに1つ)を出力させることは可能ですか?

私は約200のクラスを出力する非常に大きな.protoファイルを使用していますが、現在はすべて1つのファイルになっています。生成されたクラスを使用する必要がある場所の1つは、メモリに非常に制約のある環境(Windows Phoneバックグラウンドエージェント)です。

制約された環境にロードされたアセンブリに必要なクラスのみを含めることができるようにしたいのですが、生成されたクラスがすべて1つのファイルにある場合、これを簡単に行うことはできません。それらを複数のファイルに出力させることができれば、制約のある環境のアセンブリで必要なファイルにのみリンクできます。

protogenにクラスを別々のファイルに出力させる方法はありますか?このオプションが表示されず、現在オプションのみを使用していumbrella-classnameます。

生成されたファイルを手動で編集することはできません。protogenで編集できない場合、複数のクラスを含むファイルを分割できる別のコマンドラインツールを利用できますか?(車輪の再発明を節約するため。)

更新
私はGoogle.ProtocolBuffers.dll継承された決定を使用しており、簡単に変更することはできません。
.protoファイルの編集/分割も可能ではありません。(カスタムステップでない限り。)

0 投票する
1 に答える
625 参照

protobuf-net - Protobuf-net Protogenは、int32のDataFormat.TwosComplementを生成します

protobuf-net r580に含まれているProtogenを使用して、次の.protoファイルをコンパイルしています。

そして、私は奇妙な結果のコードがTwosComplementワイヤーフォーマットを使用していることに気づきました:

より最適化されたデフォルトのvarintタイプの代わりに。これは意図された動作ですか?

0 投票する
2 に答える
7982 参照

c# - protobuf-net - .proto から生成されたクラス - 繰り返しフィールドはセッターなしで読み取り専用になるはずですか?

私はこれについて完全に混乱しています。私は周りを見回しましたが、直接的な答えを見つけることができないようです。すべて Java である私のプロジェクトがいくつかのメッセージを作成するために使用する .proto ファイルがあります。

繰り返される Info フィールドがあります。弊社が作成したタイプです。protogen を使用して C# クラスを生成すると、このフィールドは読み取り専用として表示され、セッターがありません。

このパラメーターがないと、メッセージを完全に構築できません。だから私の質問はです。繰り返しフィールドはこのように生成されることになっており、この読み取り専用リストに別の方法でアクセスすることになっていますか? それともジェネレーターのバグですか?

生成されたコード:

プロト ファイル セクション:

私はおそらく本当に明白な何かを見逃していました。助けてくれてありがとう!

0 投票する
1 に答える
642 参照

protobuf-net - protobuf-net protogen は、proto ファイルから c# クラスと対応するインターフェイスを生成します

アプリケーションの単体テストを作成しようとしていますが、proto-class にインターフェイスを実装させたいと考えています。できれば、それらは c# クラスと一緒に生成されますが、これを行う方法が見つかりません。方法はありますか?

0 投票する
1 に答える
1994 参照

java - プロトゲン対。Protoc コンパイラ オプション

Java、C++、および C# からクラスをコンパイルするために使用される .proto ファイルがいくつかあります。Java と C++ には Protoc コンパイラを使用し、C# には Protogen を使用します。Java/C++ クラス作成用のスクリプトは次のとおりです。

そして、私が持っているC#クラスの生成のために

どちらのスクリプトも .proto ファイルを参照します (もちろん ;])。-p:detectMissingフィールドが指定されているかどうかをテストできるプロパティを生成するために、上記の C# スクリプトを追加しました。このオプションは*Specified、 のすべてのフィールドに対して作成しますIsRequired = false

私の質問は簡単です。C#、C++、および Java クラスが整列されていることを確認したいのですが、C# の-p:detectMissing場合、Protogen でオプションを使用する必要があります。Protoc を使用した同等のオプションは何ですか?

御時間ありがとうございます。

0 投票する
2 に答える
895 参照

c# - ProtoGen.exe サービス生成を有効にする

からsample.proto

.csパッケージマネージャーコンソールで、次のコマンドを使用してファイルを生成します

結果sample.csファイル

試した

  • ProtoGen.exe sample.proto -output_directory="C:\SomeDir" option (google.protobuf.csharp_file_options).service_generator_type = GENERIC;パッケージ マネージャー コンソールで実行します。エラーで終了

「google.protobuf.csharp_file_options」という用語は名前として認識されません..

  • 追加option service_generator_type = GENERIC;sample.protoます。エラーで終了

シンボルを解決できません

Services生成を有効にする方法

0 投票する
1 に答える
2837 参照

c# - protobuf-net : 生成されたクラスにセッターがないのはなぜですか?

どのような状況で、各プロパティが getter のみ (setter ではない) を持つファイル生成クラスにprotogen.exe適用できますか?.protoC#