title: Argument type 'A' is not assignable to type 'B'?
body: <p>I am trying to understand why I am getting this exception when the interface I am passing in to my base constructor implements the correct interfaces.</p>
  
  <p>Example interfaces:</p>
  
  <pre><code>public interface IAppService&lt;T,TSpecification&gt; where T: AppEntity 
      where TSpecification: IBaseSpecification&lt;T&gt;
  {
  ......
  }
  
  //I tried setting both the ISomeEntitySpecification and SomeEntitySpecification implementation
  public interface ISomeService: IAppService&lt;SomeEntity,ISomeEntitySpecification&gt;
  {
  .....
  }
  
  public interface ISomeEntitySpecification: IBaseSpecification&lt;SomeEntity&gt;
  {
  .....
  }
  
  public interface IBaseSpecification&lt;T&gt; where T: class
  {
   ....
  }
  </code></pre>
  
  <p>Example implementations:</p>
  
  <pre><code>public class SomeEntitySpecification: BaseSpecification&lt;SomeEntity&gt;, ISomeEntitySpecification
  {
  ...
  }
  
  public class SomeService: AppService&lt;SomeEntity,SomeEntitySpecification&gt;, ISomeService
  {
  ....
  }
  </code></pre>
  
  <p>Example Usage:</p>
  
  <pre><code>public BaseAppController&lt;T&gt;: Controller where T: AppEntity 
  {
      public BaseAppController(IAppService&lt;T, IBaseSpecification&lt;T&gt;&gt;)
      {
       .....
      }
  
  }
  
  //This is where i get the error
  public SomeController: BaseAppController&lt;SomeEntity&gt;
  {
        public SomeController(ISomeService someService):base(someService)
        {
        .....
        }
  }
  </code></pre>
  
  <p>The IDE for visual studio is telling me that <code>someService</code> cannot be assigned to the <code>BaseAppController</code>'s constructor parameter. I am not sure why.</p>