問題タブ [protobuf-csharp-port]
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# - protobuf3 で繰り返される Int32Value (null 許容の int 配列)
次の protobuf メッセージ プロトコルがあります。
protoc はそれをうまくコンパイルし、C# ではすべての Int32Values は int? です。ただし、null引数が許可されていないという例外で実行時に失敗します。repeated
null メッセージが許可されないことは理解できます。ただしInt32Value
、 WellKnownType であるため、コンパイラは必要に応じて特別な NullValue 型を生成できます。
これは protobuf の制限 (で許可Int32Value
されていないrepeated
) ですか、それとも C# コード生成とサポート ライブラリの制限/バグですか?
独自のメッセージと codegen を作成する以外に、protobuf プロトコルで null 許容の int 配列を実行するオプションは何ですか?
c# - Protobuf 繰り返しフィールドを検索するには?
protobuf を使用するのは初めてで、繰り返しフィールド内の特定のアイテムにアクセスする方法があるのだろうかと思います。
すべてのアイテムを反復処理し、アイテム フィールドをチェックして返すメソッドを作成しました (それへのポインターを返すことはできません :( )。
一部のラムダ式を使用する find メソッドがないようです。
これを達成する他の方法はありますか?アイテムのコピーではなく、アイテムへのポインターがあれば完璧なので、それを変更すると、完全な繰り返しフィールドを直接書き込むことができます。
c# - protobuf マップの値を設定する方法C# のプロパティ
次のprotoc3メッセージがあります:
C# にコンパイルすると、次の自動生成コードが得られます。
rpc 関数への入力として使用している LocalizedString プロパティを持つ別のメッセージがありますが、 のプロパティを設定する方法がわかりませんTranslations
。生成されたコードでTranslations
は、読み取り専用としてマークされています。
C# でこのようなマップを含む protobuf メッセージ オブジェクトを作成するにはどうすればよいですか?