public Implementation(Type type, DependencyTTL dependencyTTL = DependencyTTL.IPD, DependencyProvider provider = null) { this.type = type; this.dependencyTTL = dependencyTTL; if (dependencyTTL == DependencyTTL.SINGLETON) { if (provider == null) { //throw error } else { this.instance = provider.Resolve(type); } } }