有没有人知道一种创建方法来序列化实现IDictionary的对象? ......没有实施新课程?
答案 0 :(得分:13)
如果实现IDictionary
的类是可序列化的(如Dictionary<K,V>
)并且K
和V
是可序列化的,那么标准的.NET序列化机制应该可以工作。
如果实现IDictionary
的类是可序列化的,但是K
和V
则可以使用两个数组分别序列化键和关联值:
// 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]);
答案 1 :(得分:1)
我认为你的意思是你必须序列化一部你无法控制的课程的字典?
简而言之,您必须单独序列化键和值。要反序列化,请逐步执行键/值数组中的每个项目,然后将它们添加回字典中。
答案 2 :(得分:0)
您可以使用System.Runtime.Serialization.DataContractSerializer
,ReadObject
和WriteObject
,方法与Deserialize
和Serialize
相同。
它就像一个魅力。