Ninject,linqtosql,请求每个控制器的作用域而不注入

Ninject,linqtosql,请求每个控制器的作用域而不注入,ninject,Ninject,我最近看到了这篇文章,题目是: Linq到Sql和ASP.NET MVC–每个请求的数据上下文 在此链接: 我想使用ninject而不是structuremap来设置它,最好使用新的mvc 3依赖项解析器,因为我使用的是mvc 3 rtm 本条的相关部分如下: 首先,您需要通过调用ObjectFactory来配置StructureMap。在Global.asax中进行配置,并传入一个自定义注册表实例: protected void Application_Start() { Register

我最近看到了这篇文章,题目是: Linq到Sql和ASP.NET MVC–每个请求的数据上下文 在此链接:

我想使用ninject而不是structuremap来设置它,最好使用新的mvc 3依赖项解析器,因为我使用的是mvc 3 rtm

本条的相关部分如下:

首先,您需要通过调用ObjectFactory来配置StructureMap。在Global.asax中进行配置,并传入一个自定义注册表实例:

protected void Application_Start() {
 RegisterRoutes(RouteTable.Routes);

 ObjectFactory.Configure(cfg => {
  cfg.AddRegistry(new MyRegistry());
 });
}
public class MyRegistry : Registry {
 public MyRegistry() {
  For<BlogDataContext>()
   .HttpContextScoped()
   .Use(c => new BlogDataContext());

  Scan(scan => {
   scan.AddAllTypesOf<Controller>();
  });
 }
}
MyRegistry的代码如下所示:

protected void Application_Start() {
 RegisterRoutes(RouteTable.Routes);

 ObjectFactory.Configure(cfg => {
  cfg.AddRegistry(new MyRegistry());
 });
}
public class MyRegistry : Registry {
 public MyRegistry() {
  For<BlogDataContext>()
   .HttpContextScoped()
   .Use(c => new BlogDataContext());

  Scan(scan => {
   scan.AddAllTypesOf<Controller>();
  });
 }
}
然后,我们可以在应用程序\u Start中用StructureMapControllerFactory替换DefaultControllerFactory:

protected void Application_Start() {
 RegisterRoutes(RouteTable.Routes);

 ObjectFactory.Configure(cfg => {
  cfg.AddRegistry(new MyRegistry());
 });

 ControllerBuilder.Current.SetControllerFactory(
  new StructureMapControllerFactory());
}
我想用ninject 2.0做同样的事情,而不是结构图。我正在用ninject mvc3构建一个mvc 3站点。我从nuget下载了ninject mvc 3软件包,我的解决方案中有一个文件,用于连接ninject。 AppStart_NinjectMVC3.cs

我不想使用structurmap,我知道同样的设置可以用ninject完成,但我不确定如何连接它


谢谢。

我宁愿使用位于的ninject项目的官方mvc3扩展。它附带了一个完整的示例应用程序,展示了如何连接mvc3应用程序