我已经开始与Ninject合作开发一个网站并在一个项目中设置DI。
我注意到你在名为ninjectWebCommon的app_start中注册了绑定依赖项。项目加载时,是否所有依赖项都已注册?例如,如果您注册了超过50个依赖项,这会导致资源问题吗?或者每个实例是否在页面执行时注册?如果没有,有没有办法懒惰绑定依赖项或这是不必要的?
即使使用其他IOC容器,有没有更好的方法来实现这一目标?
答案 0 :(得分:3)
您应该阅读Register Resolve Release pattern。基本上注册过程非常简单,您告诉容器哪些类型用于解析抽象。在此过程中不会创建任何对象。 DI容器在请求到达您的应用程序时创建实例。它们可能只创建一次或每次请求,具体取决于生命周期。
答案 1 :(得分:1)
你也为其他容器做了类似的注册,这确实是一个资源问题。然而,Ninject有点慢。如果您可以随意选择,那么使用像SimpleInjector这样的DI容器可能会更好。
为了进行比较,我使用了a website with some benchmarks。