title: Interface<dynamic> not allowed in C# - workaround
body: <p>I have a class that I am trying to design which uses <code>dynamic</code> as type parameter:</p>
  
  <pre><code>public class Idea : IEnumerable&lt;dynamic&gt;, IQueryable&lt;dynamic&gt;
  {
  }
  </code></pre>
  
  <blockquote>
    <p><strong>Compiler: Cannot implement a dynamic interface</strong></p>
  </blockquote>
  
  <p>So I have this workaround which I'm not overly keen on:</p>
  
  <pre><code>public class Idea&lt;T&gt; : IEnumerable&lt;T&gt;, IQueryable&lt;T&gt;
  {
  }
  
  public class Idea : Idea&lt;dynamic&gt;
  {
  }
  </code></pre>
  
  <blockquote>
    <p><strong>Compiler: success!</strong></p>
  </blockquote>
  
  <p>I can't think of any other way to work around this issue, and I'm not really sure I want to expose <code>Idea&lt;T&gt;</code> to the user.</p>
  
  <p>Questions:</p>
  
  <ol>
  <li>I feel like there are code smells here... can you confirm?</li>
  <li>Why does the CLR not allow implementation of <code>dynamic</code> interfaces?</li>
  <li>Are there any patterns I could use to achieve this without exposing <code>Idea&lt;T&gt;</code>?</li>
  </ol>