Annotates a field, method, or constructor that the DI container will assign/invoke. The constructor/method
can declare an arbitrary number of paramters. The type of the field/parameter must match the registered
type of an object in the DI container. The field/parameter can also be annotated with Name, in that
case the object to inject will be looked up by the specified name.