【发布时间】:2015-02-11 16:18:20
【问题描述】:
我有一个带有 UnitOfWork 接口和管理器的项目设置。当我只需要使用 accountMananger 作为控制器的基础时,所有这些都运行良好。
protected BaseController(IAccountManager acctManager)
{
_accountManager = acctManager;
}
我的控制器就是这样创建的,并且可以正常工作。
public class AccountController : BaseController
{
public AccountController(IAccountManager accountManager)
: base(accountManager)
{
}
现在我正在创建其他业务经理,并且我意识到在项目结束时我的 BaseController 构造函数将会很大,或者我将根据我所在的控制器加载各种签名。如果我忘记了某些东西并需要另一个管理器并更改了一个构造函数,那么所有其他控制器也需要更改。
我的意思是,我实际上总是希望在基础中注入/解析 accountManager。我可以这样做吗?因为我 99% 都在检查授权。
我已经阅读了有关 ControllerFactories 的信息,但也有人提到要实现 IDependancyResolver ,但没有示例,这是他的首选方式。
我可以看到这成为基于我需要的控制器创建构造函数的巨大负担,而我还没有。
任何人都可以给我一个示例,说明如何在我需要的时候轻松访问我在基地的经理。我的意思是,无论如何,它们都已创建并准备好解决.. 那我为什么需要以如此奇怪的方式传递它们呢?
对不起。刚刚学习了 DI,这是一个很好的教程,但是你可以看到缺少一些进一步的解释。
【问题讨论】:
标签: c# asp.net-mvc dependency-injection autofac