Search code examples
c#asp.net-mvc-4asp.net-mvc-5structuremap4

Resolve Dependency on a repository interface MVC5 using structuremap


I have a mapper that takes data from a repository project. I have a IMenueMapper interface that is passed into the homecontroller like this:

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

but the menuemapper class itself use the IMenueMapperRepository, and this come from another project and is passed in via dll

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

While I can easily resolve the IMenuemapper in the MVC project, using structuremap.mvc5, I can't resolve the repository. Is there a way of achieving the DI in this instance?


Solution

  • You need to register the abstraction (repository interface and implementation) in the composition root.

    You indicated that the IMenueMapper is registered via;

    scan.AssemblyContainingType<MenueMapper>();
    

    Since

    but the MenueMapper class itself use the IMenueMapperRepository, and this come from another project and is passed in via dll

    Then it should also be scanned as it belongs to another assembly

    scan.AssemblyContainingType<MenueItemsRepository>();
    

    Make sure that the project references the assembly in question