The Unity Application Block (Unity) is a lightweight, extensible dependency injection container. It facilitates building loosely coupled applications and provides developers with the following advantages:
- simplified object creation, especially for hierarchical object structures and dependencies.
- abstraction of requirements; this allows developers to specify dependencies at run time or in configuration and simplify management of crosscutting concerns.
- increased flexibility by deferring component configuration to the container.
- service location capability; this allows clients to store or cache the container.