繁体   English   中英

如何序列化IDictionary

[英]How to serialize IDictionary

有没有人知道一种创造性的方法来序列化实现IDictionary的对象? ......没有实施新课程?

如果实现IDictionary的类是可序列化的(如Dictionary<K,V> )并且KV是可序列化的,那么标准的.NET序列化机制应该可行。

如果实现IDictionary的类是可序列化的,但是KV则可以使用两个数组分别序列化键和关联值:

// before serialization
IDictionary<string,int> dict;
string[] keys = dict.Keys.ToArray();
int[] values = dict.Keys.Select(key => dict[key]).ToArray();

// after deserialization
IDictionary<string,int> dict = new Dictionary<string,int>();
for (int i = 0; i < keys.Length; i++)
    dict.Add(keys[i], values[i]);

我认为你的意思是你必须序列化一部你无法控制的课程的字典?

简而言之,您必须单独序列化键和值。 要反序列化,请逐步执行键/值数组中的每个项目,然后将它们添加回字典中。

您可以使用System.Runtime.Serialization.DataContractSerializer ,使用ReadObjectWriteObject ,方法与DeserializeSerialize 它就像一个魅力。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM