Summary
Ninject uses its binding system to map abstract services to concrete types. The core object of Ninject to which we give a service type and get the concrete service is Ninject kernel. Ninject uses the object scopes to deal with Lifetime of the created objects. We can use the predefined scopes or create our custom scopes to define the lifetime of objects created by Ninject. Ninject supports both code-based and XML-based configurations for registering service types. Although XML modules can be modified without having to compile the application, code modules are more powerful and recommended. Instead of registering each service individually, we usually use conventions to register a group of services at a time.