【问题标题】:What is the best way to use Ninject with MVC 3 and how?将 Ninject 与 MVC 3 一起使用的最佳方法是什么以及如何使用?
【发布时间】:2011-09-17 03:15:37
【问题描述】:

在 MVC 3 中使用 Ninject 的最佳方式是什么以及如何

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

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

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

谢谢!

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • 将它们放在单独的模块中有什么好处,还有什么模块?
    • @Rushino:Ninject 模块允许您将一组绑定封装在它们自己的类中——完整的解释请参见这个 SO 线程:stackoverflow.com/questions/2056409/…
    【解决方案2】:

    对我来说,最好的方法是从 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;
      }
    
      ...
    }
    

    【讨论】:

      猜你喜欢
      • 2012-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-11
      • 1970-01-01
      • 1970-01-01
      • 2011-08-14
      相关资源
      最近更新 更多