Dependency injection 关于Ninject实施的建议

Dependency injection 关于Ninject实施的建议,dependency-injection,ninject,Dependency Injection,Ninject,我正在使用Ninject(一个MVC web应用程序)开发我的第一个项目,对于Ninject的正确/最佳使用有一个问题 我已经设置了一个将接口绑定到具体类的NinjectModule,但现在我想在代码中创建接口对象的实例。为此,我编写了以下方法: public class NinjectControllerFactory : DefaultControllerFactory { private class MyServices : NinjectModule { ... }

我正在使用Ninject(一个MVC web应用程序)开发我的第一个项目,对于Ninject的正确/最佳使用有一个问题

我已经设置了一个将接口绑定到具体类的NinjectModule,但现在我想在代码中创建接口对象的实例。为此,我编写了以下方法:

public class NinjectControllerFactory : DefaultControllerFactory {

  private class MyServices : NinjectModule {
     ...
  }

   public static IMyRepository GetMyRepository()
   {
      IKernel kernel = new StandardKernel(new MyServices());
      return kernel.Get<IMyRepository>();
   } 
}

我的问题是,这是实现我想要的结果的正确/最好的方法吗?我想我关心的是创建内核实例的开销。

阅读文档:并查看示例项目。

谢谢您。提前道歉,但我想我可能会考验你的耐心。。。假设我有一个接口,我有两个实现该接口的类。在我的代码中,我想创建一个简单的控制台应用程序(例如),该接口的一个实例。你/你能/你应该基于NinjectModule定义一个类,然后动态创建一个Ninject StandardKernel对象,并使用它来获取()具体实例吗?不,通常你只有一个内核在应用程序的引导程序中配置。它被尽可能少地使用。许多应用程序只需一次调用就可以创建所有必要的服务。在MVC3的情况下,你根本不需要任何电话。
IMyRepository tempDB = ControllerFactory.GetRoomarRepository();