/// <summary> /// 获取必须配置的值 /// </summary> /// <typeparam name="T">值类型</typeparam> /// <param name="configSetting">配置节</param> /// <param name="name">值名</param> /// <returns>配置值</returns> public static T GetRequiredSetting <T>(this IConfigSetting configSetting, string name) { ISettingValue settingValue = null; if (configSetting != null) { settingValue = configSetting.Property[name]; if (settingValue == null) { var setting = name == null ? configSetting : configSetting[name]; if (setting != null) { var type = typeof(T); if (typeof(IConfigSettingElement).IsAssignableFrom(typeof(T))) { return((T)setting.ToSetting(type)); } settingValue = setting.Value; } } } if (settingValue != null) { return(settingValue.TryToObject <T>()); } throw new ConfigException(string.Format("必须配置节点 {0}", name)); }
/// <summary> /// 获取配置值 /// </summary> /// <typeparam name="T">值类型</typeparam> /// <param name="configSetting">配置节</param> /// <param name="name">值名</param> /// <param name="defaultValue">值缺省值</param> /// <returns>配置值</returns> public static T GetSetting <T>(this IConfigSetting configSetting, string name, T defaultValue) { ISettingValue settingValue = null; if (configSetting != null) { settingValue = configSetting.Property[name]; if (settingValue == null) { var setting = name == null ? configSetting : configSetting[name]; if (setting != null) { var type = typeof(T); if (typeof(IConfigSettingElement).IsAssignableFrom(typeof(T))) { return((T)setting.ToSetting(type)); } settingValue = setting.Value; } } } return(settingValue != null?settingValue.TryToObject <T>() : defaultValue); }