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;