我有一个HybridDictionary
个对象。是否可以使用Protobuf-net
序列化HybridDictionary
对象?
答案 0 :(得分:1)
目前没有,并且有充分的理由:
HybridDictionary
的数据合约,因为它只会为关键字和值广告object
; protobuf-net 真的,真的想要理解所涉及的类型string
),但通常值因此,我强烈建议使用Dictionary<TKey, TValue>
或实现IDictionary<TKey, TValue>
的内容。理论上我们可以添加API,允许你告诉它如何解释键和值(显然是在库中支持它的工作),但我怀疑是否会< em>实际上是真正的好处。坦率地说,我不确定这些天(或过去多年)使用HybridDictionary
的目的很多。
实际上,直到2.3.0,protobuf-net并没有直接支持Dictionary<TKey, TValue>
- 至少,不是你想象的方式:直到map<...,...>
功能已完全实现,实际上看到的内容是类似列表的内容,即可以使用{some type}
方法解释为Add({some type})
序列的内容。对于字典,{some type}
恰好是KeyValuePair<TKey, TValue>
,依次可以解释为类似元组的类型(成员与构造函数完全匹配,所以根据构造函数参数推断合同)。方便的是,这与map<...,...>
使用的形状完全相同,因此这种方法可以与2.3.0(which is discussed more here)中首选的新方法互换(数据方式)。