@inject will try to inject object id to the same property name.
you can set the name of the property the object will be injected to.
you can inject an instance to method param to any function.
factory method is a function that will return the injected object. this is useful to create many instances of the same class.
if the instance has async initialize you can use
you can inject an array of properties by reference or by value.
you can inject a dictionary of properties by reference or by value.
you can inject property from other object property.