public string GetConfigurationSettingValueOrDefault(string configurationSettingName, string defaultValue) { if (!_configuration.ContainsKey(configurationSettingName)) { string configValue = CloudConfigurationManager.GetSetting(configurationSettingName); bool isEmulated = Environment.CommandLine.Contains("iisexpress.exe") || Environment.CommandLine.Contains("WebJob.vshost.exe"); if (isEmulated && (configValue != null && configValue.StartsWith(ConfigToken, StringComparison.OrdinalIgnoreCase))) { if (_environment == null) { LoadEnvironmentConfig(); } configValue = _environment.GetSetting( configValue.Substring(configValue.IndexOf(ConfigToken, StringComparison.Ordinal) + ConfigToken.Length)); } try { _configuration.Add(configurationSettingName, configValue); } catch (ArgumentException) { // at this point, this key has already been added on a different // thread, so we're fine to continue } } return(_configuration[configurationSettingName]); }
public string GetConfigurationSettingValueOrDefault(string configurationSettingName, string defaultValue) { try { if (!_configuration.ContainsKey(configurationSettingName)) { string configValue = string.Empty; bool isEmulated = true; bool isAvailable = false; try { isAvailable = RoleEnvironment.IsAvailable; } catch (TypeInitializationException) { } if (isAvailable) { configValue = RoleEnvironment.GetConfigurationSettingValue(configurationSettingName); isEmulated = RoleEnvironment.IsEmulated; } else { configValue = ConfigurationManager.AppSettings[configurationSettingName]; isEmulated = Environment.CommandLine.Contains("iisexpress.exe") || Environment.CommandLine.Contains("WebJob.vshost.exe"); } if (isEmulated && (configValue != null && configValue.StartsWith(ConfigToken, StringComparison.OrdinalIgnoreCase))) { if (_environment == null) { LoadEnvironmentConfig(); } configValue = _environment.GetSetting(configValue.Substring(configValue.IndexOf(ConfigToken, StringComparison.Ordinal) + ConfigToken.Length)); } try { _configuration.Add(configurationSettingName, configValue); } catch (ArgumentException) { // at this point, this key has already been added on a different // thread, so we're fine to continue } } } catch (RoleEnvironmentException) { if (string.IsNullOrEmpty(defaultValue)) { throw; } _configuration.Add(configurationSettingName, defaultValue); } return(_configuration[configurationSettingName]); }