If the class implementing IDictionary
is serializable (like Dictionary<K,V>
) and K
and V
are serializable then the standard .NET serialization mechanisms should work.
If the class implementing IDictionary
is serializable but K
and V
are then you could use two arrays to serialize the keys and associated values separately:
// 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]);
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…