private T ThrowConfigNotFoundException <T>(IEnumerable <string> targets) where T : class, new() => throw new Exception($"Unable to get configuration of type {typeof(T).Name}! " + $"Configuration targets checked: {string.Join(",", targets)}, " + $"path checked: [{searchPath}] ." + $"Missing {TypeToSectionName(typeof(T))}." + $"[{string.Join("|", configFileLocator.GetSupportedFileExtensions())}]?");
public T GetConfiguration <T>() where T : class, new() { CheckLoadConfiguration(); T config; if ((config = TryGetCachedConfiguration <T>()) == null) { config = TryGetTypedConfiguration <T>(); configurations[typeof(T)] = config ?? throw new Exception($"Unable to get configuration of type {typeof(T).Name}! " + $"Missing {TypeToSectionName(typeof(T))}." + $"[{string.Join("|", configFileLocator.GetSupportedFileExtensions())}]?"); } return(config); }