Extending Ninject
Ninject is actually a collection of single responsible components that are wired together using DI. This makes it extremely extensible, and thus new functionalities are created by adding new components and the existing behaviors can easily be customized by swapping standard components with our customized ones. All of the Ninject components are available via the kernel.Components
property. We can also create a customized Kernel
object by extending the
KernelBase
class or even implementing the
IKernel
interface. In order to extend Ninject
behaviors, we need to know Ninject components and their roles. Going through all of those components is out of the scope of this book. However, we will have an example to see how to extend Ninject by adding a new component.
In the following example we will create a new IMissingBindingResolver
component and add it to Ninject components. IMissingBindingResolver
, as the name suggests, is responsible for resolving types for which there are...