Design patterns·Wiring: injection, containers and lifetimes
you registered an interface against a class once, and everything that needs it gets one without anybody passing it.
Dependency injection container
Also calledDI container, IoC container, injector
A library that holds the map from abstraction to implementation and constructs object graphs on demand, handling lifetimes and nested dependencies. It earns its place in an application with hundreds of components; below that it mostly replaces a readable composition root with a configuration you cannot step through. Its two recurring costs are resolution errors that surface at runtime rather than compile time, and lifetime mistakes the container will happily make for you.