私はこれについて完全に混乱しています。私は周りを見て、直接の答えを見つけることができないようです。 .protoファイルを持っています。私のプロジェクトは、すべてJavaであり、いくつかのメッセージを作成するために使用されています。protobuf-net - .protoから生成されたクラス - 繰り返しフィールドはセッターなしで読み取り専用になっていますか?
情報フィールドが繰り返し表示されます。私たちが作成したタイプです。 protogenでC#クラスを生成すると、このフィールドは読み込み専用となり、セッターはありません。
このパラメータを使用しないと、メッセージを完全に構築することはできません。だから私の質問です。繰り返しフィールドはこのように生成されるはずですが、私はこの読み込み専用にアクセスすることになっていますか?これは発電機のバグですか?
生成されたコード:
private readonly global::System.Collections.Generic.List<StringMapEntry> _factoryProperty = new global::System.Collections.Generic.List<StringMapEntry>();
[global::ProtoBuf.ProtoMember(2, [email protected]"factoryProperty", DataFormat = global::ProtoBuf.DataFormat.Default)]
public global::System.Collections.Generic.List<StringMapEntry> factoryProperty
{
get { return _factoryProperty; }
}
プロトファイルのセクション:私はおそらく、本当に何かを明らかに行方不明になった
repeated StringMapEntry factoryProperty = 2;
。助けてくれてありがとう!
var order = new Order();
order.Lines.Add(new OrderLine {...});
サブコレクションが取得するだけであるためにそれは実際にはかなり一般的です:
リストは私的な読み取り専用として作成されていますが、私はそれをいかに混乱させるか分かりません。私は後でそれを見なければならないだろうが、私たちは問題に対する別のアプローチを使い、これを忘れてしまった。たぶん私は目が見えないのです。しかし、助けてくれてありがとう!これがあれば、私は戻ってきて、それに答えてマークします。 – Pewsplosions
@userパブリックプロパティが必要です。ありませんか? –
私はメインのポストをコードで更新しますが、私はまだそれをもう一度チェックするチャンスがありません。 – Pewsplosions