Does anyone know of a creative way to serialize objects that implement IDictionary? ...without implementing a new class?
If the class implementing IDictionary is serializable (like DictionaryK 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 dict;
string[] keys = dict.Keys.ToArray();
int[] values = dict.Keys.Select(key => dict[key]).ToArray();
// after deserialization
IDictionary dict = new Dictionary();
for (int i = 0; i < keys.Length; i++)
dict.Add(keys[i], values[i]);