0

オブジェクトを同期するために、バス経由で protobuf-net を使用しています。コレクション内のオブジェクトに対しては正常に機能しています。イベントをリッスンするCollectionChangedと、完全なオブジェクトが同期され、バス上の専用チャネルに配信されます。オブジェクトにはリスト (辞書) が含まれており、完全にシリアライズ/デシリアライズされています。

今まではそれは問題ではありませんでしたが、より効率的になり、これらのリストの更新のみを送信したいと考えています。設定OverwriteList = falseしてメソッドを使用しようとするとModel.DeserializeWithLengthPrefix、次のエラー メッセージが表示されます。

「同じキーのアイテムが既に追加されています。」(System.Collections.Generic.Dictionary で System.ThrowHelper.ThrowArgumentException(ExceptionResource リソース) で2.Insert(TKey key, TValue value, Boolean add) at System.Collections.Generic.Dictionary2.System.Collections.Generic.ICollection>.Add(KeyValuePair`2 keyValuePair) で proto_13(Object , ProtoReader )

protobuf はこれらのコレクション/辞書の変更を処理できますか? それとも、自分で変更をリッスンする必要がありますか?

4

0 に答える 0