Why are Dictionary<k,v>'s on interfaces a bad idea?
c#
Solution
Because even if you make them `readonly` or `const`, that doesn't stop clients from modifying the contents of the dictionary (without your provision). The same applies to arrays and lists on public interfaces.
To address this problem, you can either give a copy of the container to the client (as jk mentioned in his/her comment), or (would it be too expensive to copy the whole container) provide accessor methods to it like `getItem` and `setItem`. This way you keep control of the contents of the container.
Problem
Why are `Dictionary<k,v>`'s on interfaces a bad idea? Thanks