2010-05-02 3 views
1

를 구성하는 데 도움이 필요 콘테이너에서 IRead<Product>IProductDao를 얻을 수 있고 싶다. 나는이 등록을 사용하고 있습니다 :내가 한 어셈블리이 기본 인터페이스와 공급자 (Assembly1)가 성 - 윈저

container.Register(
    AllTypes.FromAssemblyNamed("Assembly2") 
     .BasedOn(typeof(IReadDao<>)).WithService.FromInterface(), 
    AllTypes.FromAssemblyNamed("Assembly1") 
     .BasedOn(typeof(IReadDao<>)).WithService.Base()); 

IReadDao<Product> 잘 작동합니다. 컨테이너는 저에게 ProductDao을주었습니다. 그러나 IProductDao을 얻으려고하면 컨테이너가 ComponentNotFoundException을 던집니다. 등록을 올바르게 구성하려면 어떻게해야합니까?

답변

3

는 모든 인터페이스를 사용하도록 Assembly2 등록을 변경해보십시오 :

AllTypes.FromAssemblyNamed("Assembly2").BasedOn(typeof(IReadDao<>)) 
    .WithService.Select((t, baseType) => t.GetInterfaces()); 
+0

감사합니다! 완벽하게 작동했습니다! –