我们在总线上使用protobuf-net来同步对象。它适用于集合中的对象。我们收听CollectionChanged
个事件,整个对象正在同步并分布在总线上的专用通道上。我们的对象包含列表(字典),它们完全被序列化/反序列化。
到目前为止,这不是问题,但我们希望提高效率,只发送这些列表更新。如果我设置OverwriteList = false
并尝试使用Model.DeserializeWithLengthPrefix
方法,则会收到以下错误消息:
“已添加具有相同键的项目。” (在 System.ThrowHelper.ThrowArgumentException(ExceptionResource resource) 在System.Collections.Generic.Dictionary
2.Insert(TKey key, TValue value, Boolean add) at System.Collections.Generic.Dictionary
2.System.Collections.Generic.ICollection> .Add(KeyValuePair`2 keyValuePair)在proto_13(Object,ProtoReader)
protobuf可以为我们处理这些集合/词典中的更改,还是我们应该自己听取更改?