public T Get <T>(string name = "", Parameters parameters = default) { var key = new DependencyKey(name, typeof(T)); var getter = new DependencyGetter(this, parameters ?? Parameters.Empty); try { return((T)definitions[key].GetValue(getter)); } catch (KeyNotFoundException) { throw new MissingDependencyException(key); } }
internal object GetValue(DependencyGetter getter) { if (cachedValue != null) { return(cachedValue); } var value = factoryFunction(getter); if (isSingleton) { cachedValue = value; } return(value); }