public T Get <T>() where T : class, IConfigured, new() { var existingResult = _resultStore.Get <T>(); if (existingResult != null) { return(existingResult); } var configurationResult = _sourceResolver.Resolve <T>(); _resultStore.Store(configurationResult); return(configurationResult.Result); }