2017-02-12 4 views
1

리포지토리 프로젝트에서 데이터를 가져 오는 맵퍼가 있습니다. 나는 IMenueMapper의이 같은 homecontroller에 전달 인터페이스가 있습니다구조체 맵을 사용하여 리포지토리 인터페이스 MVC5에 대한 종속성 확인

public HomeController(IMenueMapper menueMapper) 
{ 
    _menueMapper = menueMapper; 
} 

하지만 menuemapper 클래스 자체가 IMenueMapperRepository를 사용을하고, 이것은 다른 프로젝트에서 온 DLL

public MenueMapper(IMenueItemsRepository menueItems) 
{ 
    _menueItems = menueItems; 
} 

동안을 통해 전달됩니다 MVC 프로젝트에서 IMenuemapper를 쉽게 해결할 수 있습니다. structuremap.mvc5를 사용하여 저장소를 확인할 수 없습니다. 이 경우에 DI를 달성 할 수있는 방법이 있습니까?

+1

왜 'IMenueItemsRepository'에 대해서도 'For'를 사용하지 않습니까? 'for (typeof (IMenueItemsRepository)). (typeof (....))'를 사용하십시오. 여기서'...'는'IMenueItemsRepository'의 구체적인 구현을 가리 킵니다. – Christos

+0

컴포지션 루트에 추상화 (리포지토리 인터페이스 및 구현)를 등록해야합니다. – Nkosi

+0

@ Nkosi 그게 무슨 뜻이야? –

답변

0

컴포지션 루트에 추상화 (리포지토리 인터페이스 및 구현)를 등록해야합니다.

귀하는 IMenueMapper이;

scan.AssemblyContainingType<MenueMapper>(); 

하지만 MenueMapper 클래스 자체가 IMenueMapperRepository를 사용하고 이 다른 프로젝트에서 온 이후 그리고 그것은 또한으로 스캔해야 다음

DLL을 통해 전달됩니다 또 다른 어셈블리에 속함

scan.AssemblyContainingType<MenueItemsRepository>(); 

프로젝트가 해당 어셈블리를 참조하는지 확인하십시오.