关于Ninject实施的建议

时间:2011-03-11 09:20:52

标签: dependency-injection ninject

我正在使用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>();
   } 
}

这似乎工作得很好......

IMyRepository tempDB = ControllerFactory.GetRoomarRepository();

我的问题是,这是实现我正在寻找的结果的正确/最佳方式吗?我猜我担心创建内核实例的开销。

1 个答案:

答案 0 :(得分:2)

阅读文档:https://github.com/ninject/ninject.web.mvc/wiki/MVC3并查看示例项目。