使用结构图解决对存储库接口 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>();
确保项目引用了有问题的程序集
我有一个从存储库项目获取数据的映射器。我有一个像这样传递到 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 theIMenueMapperRepository
, and this come from another project and is passed in via dll
那么它也应该被扫描,因为它属于另一个程序集
scan.AssemblyContainingType<MenueItemsRepository>();
确保项目引用了有问题的程序集