title: No implicit reference conversion error between generic interface concrete type
body: <p>I am using Unity to resolve a generic interface to a concrete type that implements that interface:</p>
  
  <pre><code>_container.RegisterType&lt;IItemLocatorFactory&lt;Job, ILocatorViewModel&lt;Job&gt;&gt;,
              ItemLocatorFactory&lt;Job, BaseJobViewModel&gt;&gt;();
  </code></pre>
  
  <p>The declaration of <code>IItemLocatorFactory&lt;Job, ILocatorViewModel&lt;Job&gt;&gt;</code> is:</p>
  
  <pre><code>public interface IItemLocatorFactory&lt;TData, TModel&gt; 
      where TData : IMyEntity
      where TModel : ILocatorViewModel&lt;TData&gt;
  </code></pre>
  
  <p>The class <code>ItemLocatorFactory&lt;Job, BaseJobViewModel&gt;</code> implements the interface <code>IItemLocatorFactory&lt;Job, ILocatorViewModel&lt;Job&gt;</code>: </p>
  
  <pre><code>public class ItemLocatorFactory&lt;T, TModel&gt; : IItemLocatorFactory&lt;T, TModel&gt;
      where T : IMyEntity
      where TModel : ILocatorViewModel&lt;T&gt;
  </code></pre>
  
  <p>The class <code>BaseJobViewModel</code> is declared like this:</p>
  
  <pre><code>public class BaseJobViewModel : ILocatorViewModel&lt;Job&gt;
  </code></pre>
  
  <p>But this gives me compile error complaining that there is no implicit reference conversion:</p>
  
  <blockquote>
    <p>Error  1   The type 'UI.ItemLocator.Infrastructure.DefaultItemLocatorFactory.ItemLocatorFactory' cannot be used as type parameter 'TTo' in the generic type or method 'Microsoft.Practices.Unity.UnityContainerExtensions.RegisterType(Microsoft.Practices.Unity.IUnityContainer, params Microsoft.Practices.Unity.InjectionMember[])'. There is no implicit reference conversion from 'UI.ItemLocator.Infrastructure.DefaultItemLocatorFactory.ItemLocatorFactory' to 'Interfaces.UI.ItemLocator.IItemLocatorFactory>'.</p>
  </blockquote>
  
  <p>What am I getting wrong here?</p>