title: Nested Interfaces: Cast IDictionary<TKey, IList<TValue>> to IDictionary<TKey, IEnumerable<TValue>>?
body: <p>I would think it's fairly straightforward to cast an <code>IDictionary&lt;TKey, IList&lt;TValue&gt;&gt;</code> object to an <code>IDictionary&lt;TKey, IEnumerable&lt;TValue&gt;&gt;</code>, but </p>
  
  <pre><code>var val = (IDictionary&lt;TKey, IEnumerable&lt;TValue&gt;&gt;)Value;
  </code></pre>
  
  <p>throws a <code>System.InvalidCastException</code>, and </p>
  
  <pre><code>var val = Value as IDictionary&lt;TKey, IEnumerable&lt;TValue&gt;&gt;;
  </code></pre>
  
  <p>makes <code>val</code> null.  What is the proper way to cast this?</p>