Generalizes the interface and gracefully handles unresolved dependencies by trying the next constructor.