2011-04-27 7 views
0

다른 사람이 도와 줄 수 있습니까? 나는 주사에 Unity IoC를 사용하려고합니다. 코드는 다음과 같습니다.Unity IoC 컨테이너 사용

IUnityContainer container = new UnityContainer() 
           .RegisterType<IBaseModel, EmployeeModel>() 
           .RegisterType<IProxyObjectAdapter, EmployeeProxyObjectAdapter>() 
          .RegisterType<IAdventureWorksRepository<IProxyObjectAdapter>,AdventureWorksWCFRepository<IProxyObjectAdapter>>(); 

유니티는 마지막 줄에서 불평하고 있습니다.

'AdventureWorksManagement.ServiceAgents.AdventureWorksWCFRepository' 제네릭 형식 또는 메서드의 형식 매개 변수 'TTO' 으로 사용할 수 없습니다 'Microsoft.Practices.Unity.UnityContainerExtensions.RegisterType (Microsoft.Practices 다음은 오류 메시지입니다 .Unity.IUnityContainer, 매개 변수 Microsoft.Practices.Unity.InjectionMember []) '. 는 'AdventureWorksManagement.ServiceAgents.AdventureWorksWCFRepository' 에 'AdventureWorksManagement.ServiceAgents.IAdventureWorksRepository'에서 암시 참조 변환이 없습니다. C :

/// <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; 

    ..... 

하십시오 조언 : 내 개발 \ 내 테스트 그라운드 \ MyTesting 그라운드 \ AdventureWorksManagement \ 모델 뷰 \ EmployeeViewModel.cs (94) (33) AdventureWorksManagement

여기 클래스 정의의 \. dormantroot

답변

0

오류가 정확합니다. 당신은 매핑있어 :

IAdventureWorksRepository <IProxyObjectAdapter>을 -> AdventureWorksWCFRepository < IProxyObjectAdapter이 >

그러나 코드 정의에, AdventureWorkdsWCFRepository <T>이 IAdventureWorksRepository < IBaseModel >을 구현합니다. 어떤 인터페이스에서 매핑하려고하지 않습니다. 나는 IBaseModel이 코드에서 "T"라고 생각했다.

+0

chris : 프로그래밍 방식으로이 작업을 수행합니다. IAdventureWorksRepository serviceAgent = new AdventureWorksWCFRepository (new EmployeeProxyObjectAdapter()); Unity와 어떻게 똑같이 할 수 있습니까? – dormantroot

관련 문제