没有DependencyResolver的ASP.NET MVC视图依赖注入?

时间:2011-03-26 15:48:44

标签: asp.net-mvc-3 structuremap multi-tenant

是否可以在不使用DependencyResolver的情况下将依赖项注入MVC​​ ViewPage(必须支持布局页面)?

我宁愿根本不使用DependencyResolver(我在过去将NH会话注入ActionFilters时遇到了重大问题(在整个地方泄漏))。但是,我不确定是否有替代方案?

我的另一个复杂性是DependencyResolver需要知道租户(每个租户都有自己的(StructureMap)容器)。我目前通过传入我的租户容器解析器的惰性实例来做这个(似乎这是必要的,否则解析器被缓存):

public SmDependencyResolver(Func<ISiteContainerResolver> containerResolver)
{
    this.containerResolver = containerResolver;
}

public object GetService(Type serviceType)
{
    var container = containerResolver().Resolve();

如果我最终使用DependencyResolver,我应该抛弃我的StructureMap控制器工厂,因为看起来DependencyResolver也处理这个问题吗?

由于 本

1 个答案:

答案 0 :(得分:1)

鉴于AspendencyResolver被ASP.NET MVC框架的许多方面用于依赖注入,如果你使用它,你的生活会更容易 - 正如你所说,这意味着你不需要你自己的版本的东西,如控制器工厂。

也就是说,该框架非常灵活,您可以随时插入自己的版本 - 我只想在KISS原则上尽可能少地创建自己的代码。