Esempio n. 1
0
        /// <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));
        }
Esempio n. 2
0
        /// <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);
        }