1

IMessage の一部のフィールドまたはサブメッセージに IsOptional プロパティが true に設定されている場合、それが指定されているかどうかを確認する方法は?

pbMsg.DescriptorForType.FindFieldByName("some_field_name").IsOptional == true

そうでない場合、そのフィールドまたはそのサブフィールド (またはサブメッセージ) にアクセスすると、例外が発生します。

4

1 に答える 1

1

を使用しpbMsg.HasField(...)ます。IMessage.HasField(...)このメソッドについてのオブジェクト ブラウザのドキュメントには次のように記載されています。

指定されたフィールドが設定されている場合は true を返します。これは、フィールドに対応する生成された「Has」プロパティを呼び出すこととまったく同じです。

これは protobuf-csharp ライブラリを使用していることに注意してください。

于 2012-08-07T00:39:34.130 に答える