2011-09-17 63 views
1

什么是使用Ninject与MVC 3和如何使用Ninject和MVC 3的最佳方式是什么?

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

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

任何例子将有助于我和其他人。

谢谢!

回答

7

获得Ninject for MVC 3的最好和最简单的方法是使用Visual Studio中的NuGet Package Manager添加NuGet包Ninject.MVC3

这将为您设置一切,为您的应用程序添加一个App_Start文件夹,其中包含NinjectMVC3.cs。在这一点上,所有的东西都已经作为控制器工厂了,这要归功于WebActivator - 您只需在RegisterServices()中添加绑定即可,或者将它们放在单独的模块中。

+0

什么爱维稳特在把他们单独的模块中,还什么一个模块? – Rushino

+1

@Rushino:Ninject模块允许您在自己的类中封装一组绑定 - 有关完整的解释,请参阅此SO线程:http://stackoverflow.com/questions/2056409/what-is-the-intention-of -ninject模块 – BrokenGlass

1

对我来说,最好的办法是从NinjectHttpApplication在Global.asax以加长,然后覆盖的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; 
    } 

    ... 
} 
相关问题