Ninject和lazy Dependency Injection mvc 4.5

时间:2014-01-08 09:01:46

标签: asp.net-mvc-4 dependency-injection ninject.web.mvc

我已经开始与Ninject合作开发一个网站并在一个项目中设置DI。

我注意到你在名为ninjectWebCommon的app_start中注册了绑定依赖项。项目加载时,是否所有依赖项都已注册?例如,如果您注册了超过50个依赖项,这会导致资源问题吗?或者每个实例是否在页面执行时注册?如果没有,有没有办法懒惰绑定依赖项或这是不必要的?

即使使用其他IOC容器,有没有更好的方法来实现这一目标?

2 个答案:

答案 0 :(得分:3)

您应该阅读Register Resolve Release pattern。基本上注册过程非常简单,您告诉容器哪些类型用于解析抽象。在此过程中不会创建任何对象。 DI容器在请求到达您的应用程序时创建实例。它们可能只创建一次或每次请求,具体取决于生命周期。

答案 1 :(得分:1)

你也为其他容器做了类似的注册,这确实是一个资源问题。然而,Ninject有点慢。如果您可以随意选择,那么使用像SimpleInjector这样的DI容器可能会更好。

为了进行比较,我使用了a website with some benchmarks