title: use a dictionary with an interface as value for method parameter
body: <p>Why isn't it possible to pass </p>
  
  <pre><code>Dictionary&lt;string, PinkLady&gt;()
  </code></pre>
  
  <p>into my <code>Supply(Dictionary&lt;string, IApple&gt; apples)</code> method?</p>
  
  <pre><code>public interface IApple { }
  
  public class PinkLady : IApple { }
  
  public void Supply(Dictionary&lt;string, IApple&gt; apples) { }
  
  public void TestMethod()
  {
      //Working
      Supply(new Dictionary&lt;string, IApple&gt;());
  
      //Not working
      Supply(new Dictionary&lt;string, PinkLady&gt;());
  }
  </code></pre>
  
  <p>I always get an error:</p>
  
  <blockquote>
    <p>converting from Dictionary into Dictionary not possible. PinkLady does not match expected type IApple.</p>
  </blockquote>