3

次の protobuf メッセージ プロトコルがあります。

message TestMsg
{
  int32 int = 1;
  google.protobuf.Int32Value nullable_int = 2;
  repeated google.protobuf.Int32Value nullable_int_array = 3; // Runtime fail
}

protoc はそれをうまくコンパイルし、C# ではすべての Int32Values は int? です。ただし、null引数が許可されていないという例外で実行時に失敗します。repeatednull メッセージが許可されないことは理解できます。ただしInt32Value、 WellKnownType であるため、コンパイラは必要に応じて特別な NullValue 型を生成できます。

これは protobuf の制限 (で許可Int32Valueされていないrepeated) ですか、それとも C# コード生成とサポート ライブラリの制限/バグですか?

独自のメッセージと codegen を作成する以外に、protobuf プロトコルで null 許容の int 配列を実行するオプションは何ですか?

4

1 に答える 1