【发布时间】:2011-09-17 03:15:37
【问题描述】:
在 MVC 3 中使用 Ninject 的最佳方式是什么以及如何?
它正在使用控制器工厂?还是使用 NinjectHttpApplication ?
如何获得 MVC 3 的 ninject ?我环顾四周,但我似乎无法弄清楚如何获得所需的 ..mvc.dll
任何例子都会对我和其他人有所帮助。
谢谢!
【问题讨论】:
标签: c# asp.net-mvc-3 ninject
在 MVC 3 中使用 Ninject 的最佳方式是什么以及如何?
它正在使用控制器工厂?还是使用 NinjectHttpApplication ?
如何获得 MVC 3 的 ninject ?我环顾四周,但我似乎无法弄清楚如何获得所需的 ..mvc.dll
任何例子都会对我和其他人有所帮助。
谢谢!
【问题讨论】:
标签: c# asp.net-mvc-3 ninject
为 MVC 3 获取 Ninject 的最佳和最简单的方法是使用 Visual Studio 中的 NuGet 包管理器添加 NuGet 包 Ninject.MVC3。
这将为您设置一切,将App_Start 文件夹添加到包含NinjectMVC3.cs 的应用程序。由于WebActivator,此时所有内容都已连接为控制器工厂-您可以将绑定添加到RegisterServices(),当然也可以将它们放在单独的模块中。
【讨论】:
对我来说,最好的方法是从 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;
}
...
}
【讨论】: