将Ninject与MVC 3一起使用的最佳方法是什么?

时间:2011-09-17 03:15:37

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

将Ninject与MVC 3和如何一起使用的最佳方法是什么?

它正在使用控制器工厂?或使用NinjectHttpApplication?

如何获得MVC 3的ninject?我环顾四周,但我似乎无法弄清楚如何获得所需的..mvc.dll

任何例子对我和其他人都有帮助。

谢谢!

2 个答案:

答案 0 :(得分:7)

获取Ninject for MVC 3的最佳和最简单的方法是使用Visual Studio中的NuGet包管理器添加NuGet包 Ninject.MVC3

这将为您设置所有内容,在您的应用程序中添加App_Start文件夹,其中包含NinjectMVC3.cs。此时,由于WebActivator,所有内容都已作为控制器工厂连接 - 您只需在RegisterServices()中添加绑定,或者将它们放在一个单独的模块中。

答案 1 :(得分:1)

对我来说,最好的方法是从global.asax中的 NinjectHttpApplication 扩展,然后覆盖 IKernel CreateKernel()方法

public class MvcApplication : NinjectHttpApplication {
  ...
  ...

  protected override IKernel CreateKernel() {
    var kernel = new StandardKernel();
    kernel.Load(Assembly.GetExecutingAssembly());
    // Register services with Ninject DI Container    
    kernel.Bind<IFileSystemService>().To<FileSystemService>();
    return kernel;
  }

  ...
}