在Ninject中使用无参数控制器构造函数?

时间:2011-01-29 22:17:19

标签: c# asp.net-mvc ninject elmah

我在我的应用程序中使用Ninject进行依赖注入。以下是我的一个控制器的示例:

public class DepartmentsController : Controller
{
    private IDepartmentsRepository departmentsRepository;

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

    ...
}

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

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

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

1 个答案:

答案 0 :(得分:3)

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

如果您尚未使用v3,则可以修改其代码以从Ninject Controller工厂继承。