使用结构图解决对存储库接口 MVC5 的依赖

Resolve Dependency on a repository interface MVC5 using structuremap

我有一个从存储库项目获取数据的映射器。我有一个像这样传递到 homecontroller 的 IMenueMapper 接口:

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

但是 menuemapper class 本身使用 IMenueMapperRepository,它来自另一个项目并通过 dll 传入

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

虽然我可以使用 structuremap.mvc5 轻松解析 MVC 项目中的 IMenuemapper,但我无法解析存储库。在这种情况下有没有办法实现 DI?

您需要在组合根中注册抽象(存储库接口和实现)。

您表示 IMenueMapper 是通过以下方式注册的;

scan.AssemblyContainingType<MenueMapper>();

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

那么它也应该被扫描,因为它属于另一个程序集

scan.AssemblyContainingType<MenueItemsRepository>();

确保项目引用了有问题的程序集