Question

I have started working with Ninject for a website and setting up DI within a project.

I have noticed you register the binding dependencies within the app_start called ninjectWebCommon. When the project loads, do all dependencies get registered? For example if you have over 50 dependencies registered, will this cause resource issues? Or does each instance gets registered on page execution? If not, Is there a way to lazy bind the dependencies or is this unnecessary?

Is there a better way of accomplishing this even if using another IOC Container?

Était-ce utile?

La solution

You should read about Register Resolve Release pattern. Basically registration process is quite simple, you tell the container which types to use for resolving abstractions. No objects are created in this process. DI container creates the instances when a request hits your application. They may be created only once or on every request, depending on the life cycle.

Autres conseils

You do registrations like that for other containers as well and it really shouldent be a resource issue. However Ninject is a bit on the slow side. If you can choose as you like you might be better off with a DI container like SimpleInjector.

For a comparison i used a website with some benchmarks.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top