object supplies the dependencies of another object. • A dependency is an object that can be used (a service). • An injection is the passing of a dependency to a dependent object (a client) that would use it. • The service is made part of the client's state.
requested type for each call. (default behavior) • ContainerControlledLifetimeManager • Implements a singleton behavior for objects. The object is disposed of when you dispose of the container • ExternallyControlledLifetimeManager • Implements a singleton behavior but the container doesn't hold a reference to object which will be disposed of when out of scope
However, child containers don't share instances with parents • PerResolveLifetimeManager • Implements a behavior similar to the transient lifetime manager except that instances are reused across build-ups of the object graph • PerThreadLifetimeManager • Implements a singleton behavior for objects but limited to the current thread