I noticed that Dictionary Class implements IDictionary<TKey, TValue> as well as IReadOnlyDictionary<TKey, TValue>.
However IDictionary Interface does not implement IReadOnlyDictionary<TKey, TValue>.
This means that if my class has an IDictionary<TKey, TValue>, and I need to pass an IReadOnlyDictionary<TKey, TValue> I ought to create an adapter for this, or use a different work around.
IMHO every class that has the functionality of an IDictionary<TKey, TValue> also has the functionality of an IReadOnlyDictionary<TKey, TValue>.
Did they simply forget to implement it, or are there really meaningful classes that implement IDictionary<TKey, TValue> that can't have a meaningful implementations of IReadOnlyDictionary<TKey, TValue>?