Ninject caused us a lot of problems associated with working on a project. This is one of the slowest DIs, and I highly recommend considering a different DI engine (e.g. https://github.com/ninject/ninject/issues/84 )
A couple of other things to note about Ninject:
Unbind / Rebind are not thread safe (AFAIK is not listed anywhere on xmldocs). Symptom: with interruptions, you may lose some bindings due to duplicate keys in Kenrelβs internal dictionary.
A reference to a custom scope object of the binding object can lead to a memory leak (this is really reasonable, but Ninject does not help in any way in detecting the problem). For example. Bind an object that has a permalink to the HttpContext in the HttpContext.Current area
It is also worth keeping in mind that switching to another DI may not be possible depending on the set of functions that you ultimately use (for example, service location, conditional bindings, user areas, dynamic bindings, etc.). Even if another DI structure has a similar set of functions (for example, LightInject), the syntax may be too different.
bushed
source share