Может кто-нибудь помочь мне с этим?Я пытаюсь использовать Unity IoC для инъекций.Вот код:
IUnityContainer container = new UnityContainer()
.RegisterType<IBaseModel, EmployeeModel>()
.RegisterType<IProxyObjectAdapter, EmployeeProxyObjectAdapter>()
.RegisterType<IAdventureWorksRepository<IProxyObjectAdapter>,AdventureWorksWCFRepository<IProxyObjectAdapter>>();
Unity жалуется на последнюю строку.Вот сообщение об ошибке:
'AdventureWorksManagement.ServiceAgents.AdventureWorksWCFRepository' нельзя использовать как параметр типа 'TTo' в универсальном типе или методе 'Microsoft.Practices.Unity.UnityContainerExtensions.RegisterType (Microsoft.Practices.Unity.IUnityContainer, params Microsoft.Practices.Unity.InjectionMember []) '.Не существует неявного преобразования ссылок из 'AdventureWorksManagement.ServiceAgents.AdventureWorksWCFRepository' в 'AdventureWorksManagement.ServiceAgents.IAdventureWorksRepository'.C: \ My Development \ My Testing Ground \ MyTesting Ground \ AdventureWorksManagement \ ModelView \ EmployeeViewModel.cs 94 33 AdventureWorksManagement
Вот определение класса:
/// <summary>
/// Repository for WCF agents
/// </summary>
public class AdventureWorksWCFRepository<T> : IAdventureWorksRepository<IBaseModel> where T: IProxyObjectAdapter
{
/// <summary>
/// WCF service end
/// </summary>
private readonly AdvWorksManagementService.EmployeeServiceContractClient servicePoint;
/// <summary>
/// Adapter used to translate WCF proxy objects to domain objects
/// </summary>
private T proxyobjectAdapter;
.....
Пожалуйста, совет.dormantroot