T IConfigurationSource.GetConfiguration <T>() { var sectionName = typeof(T).Name; var section = GetConfigurationHandler() .GetSection(sectionName) as T; foreach (var property in typeof(T).GetProperties().Where(x => x.DeclaringType == typeof(T))) { var adjustedPrefix = !string.IsNullOrEmpty(ConfigurationPrefix) ? ConfigurationPrefix + "." : string.Empty; var setting = azureConfigurationSettings.GetSetting(adjustedPrefix + sectionName + "." + property.Name); if (!string.IsNullOrEmpty(setting)) { if (section == null) { section = new T(); } property.SetValue(section, Convert.ChangeType(setting, property.PropertyType), null); } } return(section); }