Property/Field Injection
If the object has a local default and Inject is optional, Property/Field Injection can be used.
class ClassA{    [Inject]    IServiceA serviceA { get; set; } // Will be overwritten if something is registered.
    public ClassA()    {        serviceA = ServiceA.GoodLocalDefault;    }}It can resolve like this:
    [Inject]    IServiceA serviceA;