1

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

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

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

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

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

4

1 回答 1

1

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

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

scan.AssemblyContainingType<MenueMapper>();

自从

但是MenueMapper该类本身使用IMenueMapperRepository, 这来自另一个项目并通过 dll 传入

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

scan.AssemblyContainingType<MenueItemsRepository>();

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

于 2017-02-12T12:30:02.887 回答