Я использую Unity разрешить общий интерфейс для конкретного типа, который реализует этот интерфейс:Нет неявные ошибок ссылочного преобразования между общим интерфейсом конкретного типом
_container.RegisterType<IItemLocatorFactory<Job, ILocatorViewModel<Job>>,
ItemLocatorFactory<Job, BaseJobViewModel>>();
Декларация IItemLocatorFactory<Job, ILocatorViewModel<Job>>
является:
public interface IItemLocatorFactory<TData, TModel>
where TData : IMyEntity
where TModel : ILocatorViewModel<TData>
класс ItemLocatorFactory<Job, BaseJobViewModel>
реализует интерфейс IItemLocatorFactory<Job, ILocatorViewModel<Job>
:
public class ItemLocatorFactory<T, TModel> : IItemLocatorFactory<T, TModel>
where T : IMyEntity
where TModel : ILocatorViewModel<T>
Класс BaseJobViewModel
объявлен так:
public class BaseJobViewModel : ILocatorViewModel<Job>
Но это дает мне ошибку компиляции жалуясь, что нет неявного ссылочного преобразования:
Ошибки 1 Типа «UI.ItemLocator.Infrastructure.DefaultItemLocatorFactory .ItemLocatorFactory 'не может использоваться как параметр типа TTo в родовом типе или методе. Microsoft.Practices.Unity.UnityContainerExtensions.RegisterType (Microsoft.Practices.Unity.IUnityContainer, параметры Microsoft.Practices.Unity.InjectionMember [])'. Нет никакого неявного преобразования ссылок из 'UI.ItemLocator.Infrastructure.DefaultItemLocatorFactory.ItemLocatorFactory' в 'Interfaces.UI.ItemLocator.IItemLocatorFactory>'.
Что я здесь не так?