一尘不染

为什么XmlSerializer不支持Dictionary?

c#

只是好奇为什么不支持Dictionary XmlSerializer

通过使用DataContractSerializer对象并将其写入,您可以很容易地解决它XmlTextWriter,但是Dictionary的特征是什么使得XmlSerializer考虑到它实际上是KeyValuePairs数组很难处理。

实际上,您可以将传递IDictionary<TKey, TItem>给需要的方法IEnumerable<KeyValuePairs<TKey, ITem>>


阅读 376

收藏
2020-05-19

共1个答案

一尘不染

哈希表通常需要哈希码和相等比较器提供程序。这些不能以XML轻松序列化,并且绝对不会移植。

但是我认为您已经找到了答案。只需将哈希表序列化为a List<KeyValuePair<K,V>>,然后将其(重新)构造为哈希表即可。

2020-05-19