2011-01-29 96 views
1

我在我的应用程序中使用Ninject进行依赖注入。这里是我的控制器的一个示例:在Ninject中使用无参数控制器构造函数?

public class DepartmentsController : Controller 
{ 
    private IDepartmentsRepository departmentsRepository; 

    public DepartmentsController(IDepartmentsRepository departmentsRepository) 
    { 
     this.departmentsRepository = departmentsRepository; 
    } 

    ... 
} 

我也想跟着this tutorial在MVC应用程序中使用ELMAH。这个想法是使用自定义控制器工厂来处理来自每个控制器的错误。然后将控制器工厂设置为global.asax.cs文件中的自定义工厂。

唯一的问题是,它期望每个控制器中的无参数构造函数,我不能这样做(我知道的)与Ninject的依赖注入。

我怎样才能解决这个问题?

回答

3

如果您使用的是MVC3,则应该忽略有关Controller Factory的部分,并使用全局过滤器将自定义属性应用于每个控制器。

如果您尚未使用v3,并且您可以修改其代码以从Ninject控制器工厂继承。