title: C# Interface Error: There is no implicit reference conversion from class xxx to interface xxxx
body: <p>I have following classes under different namespaces. I mean, the same 3 classes exist under different namespaces.</p>
  
  <pre><code>public class A
  {
     public int a { get; set; }
  }
  
  public class B
  {
     public A objA { get; set; }
  }
  
  public class C
  {
     public List&lt;B&gt; listBinC { get; set; }
  }
  </code></pre>
  
  <p>In order to utilize/operate between the objects of these classes I thought of writing an interface wrapper such as</p>
  
  <pre><code>public interface iA
  {
     int a { get; set; }
  }
  
  public interface iB&lt;T&gt; where T: iA
  {
     T objA { get; set; }
  }
  
  public interface iC&lt;T&gt; where T : iB&lt;iA&gt;
  {
     List&lt;T&gt; listBinC {get; set; }
  }
  </code></pre>
  
  <p>After this I have changed my Class definitions to </p>
  
  <pre><code>public class A : iA
  {
      public int a { get; set; }
  }
  
  public class B : iB&lt;A&gt;
  {
      public A objA { get; set; }
  }
  
  class C : iC&lt;B&gt;
  {
      public List&lt;B&gt; listBinC { get; set; }
  }
  </code></pre>
  
  <p>When Compiled I am getting the following Error</p>
  
  <pre><code>The type 'Example.B' cannot be used as type parameter 'T' in the generic type or method 'Example.iC&lt;T&gt;'. 
  There is no implicit reference conversion from 'Example.B' to 'Example.iB&lt;Example.iA&gt;'.
  </code></pre>
  
  <p>I cannot change my class structure as it is provided by different team. What is the right way to enforce the interface 'constraints' to resolve the error?</p>