問題タブ [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.
c# - protogenを使用してファイルごとに1つのC#クラスを出力しますか?
単一の.protoファイルに基づいてprotogenに複数のファイル(クラスごとに1つ)を出力させることは可能ですか?
私は約200のクラスを出力する非常に大きな.protoファイルを使用していますが、現在はすべて1つのファイルになっています。生成されたクラスを使用する必要がある場所の1つは、メモリに非常に制約のある環境(Windows Phoneバックグラウンドエージェント)です。
制約された環境にロードされたアセンブリに必要なクラスのみを含めることができるようにしたいのですが、生成されたクラスがすべて1つのファイルにある場合、これを簡単に行うことはできません。それらを複数のファイルに出力させることができれば、制約のある環境のアセンブリで必要なファイルにのみリンクできます。
protogenにクラスを別々のファイルに出力させる方法はありますか?このオプションが表示されず、現在オプションのみを使用していumbrella-classname
ます。
生成されたファイルを手動で編集することはできません。protogenで編集できない場合、複数のクラスを含むファイルを分割できる別のコマンドラインツールを利用できますか?(車輪の再発明を節約するため。)
更新
私はGoogle.ProtocolBuffers.dll
継承された決定を使用しており、簡単に変更することはできません。
.protoファイルの編集/分割も可能ではありません。(カスタムステップでない限り。)
protobuf-net - Protobuf-net Protogenは、int32のDataFormat.TwosComplementを生成します
protobuf-net r580に含まれているProtogenを使用して、次の.protoファイルをコンパイルしています。
そして、私は奇妙な結果のコードがTwosComplementワイヤーフォーマットを使用していることに気づきました:
より最適化されたデフォルトのvarintタイプの代わりに。これは意図された動作ですか?
c# - protobuf-net - .proto から生成されたクラス - 繰り返しフィールドはセッターなしで読み取り専用になるはずですか?
私はこれについて完全に混乱しています。私は周りを見回しましたが、直接的な答えを見つけることができないようです。すべて Java である私のプロジェクトがいくつかのメッセージを作成するために使用する .proto ファイルがあります。
繰り返される Info フィールドがあります。弊社が作成したタイプです。protogen を使用して C# クラスを生成すると、このフィールドは読み取り専用として表示され、セッターがありません。
このパラメーターがないと、メッセージを完全に構築できません。だから私の質問はです。繰り返しフィールドはこのように生成されることになっており、この読み取り専用リストに別の方法でアクセスすることになっていますか? それともジェネレーターのバグですか?
生成されたコード:
プロト ファイル セクション:
私はおそらく本当に明白な何かを見逃していました。助けてくれてありがとう!
protobuf-net - protobuf-net protogen は、proto ファイルから c# クラスと対応するインターフェイスを生成します
アプリケーションの単体テストを作成しようとしていますが、proto-class にインターフェイスを実装させたいと考えています。できれば、それらは c# クラスと一緒に生成されますが、これを行う方法が見つかりません。方法はありますか?
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 を使用した同等のオプションは何ですか?
御時間ありがとうございます。
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
生成を有効にする方法
c# - protobuf-net : 生成されたクラスにセッターがないのはなぜですか?
どのような状況で、各プロパティが getter のみ (setter ではない) を持つファイル生成クラスにprotogen.exe
適用できますか?.proto
C#