示例#1
0
        public static object GetObject(this IConfigSettingElement settingElement, string objectSettingName, bool autoInit)
        {
            var objectAlias = settingElement.GetSetting(objectSettingName);
            var instance    = ObjectService.Current.GetOrCreateObject(objectAlias);

            if (autoInit && instance is ISettingInitialize)
            {
                ((ISettingInitialize)instance).Init(settingElement.ConfigSetting);
            }
            return(instance);
        }
示例#2
0
 private static IConfigSettingElement GetSetting(ObjectServiceBase objectService, IObjectSetting objectSetting, IConfigSettingElement setting)
 {
     setting.ConfigSetting = objectService.GetObjectSettingInternal(objectSetting);
     var handlerName = objectSetting.SettingSet.Value;
     if(!string.IsNullOrEmpty(handlerName)) {
         var handler = objectService.GetOrCreateObject<ISettingHandler>(handlerName);
         if(handler != null) {
             setting = handler.GetSetting(setting);
         }
     }
     return setting;
 }
示例#3
0
        public static T GetObject <T>(this IConfigSettingElement settingElement, string objectSettingName, bool autoInit, Action <T> initializer)
        {
            var objectAlias = settingElement.GetSetting(objectSettingName);
            var instance    = ObjectService.Current.GetOrCreateObject <T>(objectAlias);

            if (!Equals(instance, default(T)) && initializer != null)
            {
                initializer(instance);
            }
            if (autoInit && instance is ISettingInitialize)
            {
                ((ISettingInitialize)instance).Init(settingElement.ConfigSetting);
            }
            return(instance);
        }
示例#4
0
        /// <summary>
        /// 获取配置值集合
        /// </summary>
        /// <typeparam name="T">值类型</typeparam>
        /// <param name="name">子节名</param>
        /// <param name="initializer">对元素进行初始化</param>
        /// <returns>配置值集合</returns>
        public static List <T> GetSettingsWithInitializer <T>(this IConfigSettingElement element, string name, Action <T> initializer) where T : IConfigSettingElement, new()
        {
            var list    = new List <T>();
            var setting = element.ConfigSetting;

            if (setting != null)
            {
                var settings = string.IsNullOrEmpty(name) ? setting.GetChildSettings() : setting.GetChildSettings(name);
                foreach (var item in settings)
                {
                    var t = item.ToSetting <T>();
                    initializer?.Invoke(t);
                    list.Add(t);
                }
            }
            return(list);
        }
示例#5
0
 /// <summary>
 /// 获取配置值
 /// </summary>
 /// <param name="settingElement">强类型配置实例</param>
 /// <param name="name">值名</param>
 /// <returns>配置值</returns>
 public static string GetCachedSetting(this IConfigSettingElement settingElement, string name)
 {
     return(settingElement.GetObjectContext(name, () => settingElement.GetSetting(name)));
 }
示例#6
0
 /// <summary>
 /// 获取配置值集合
 /// </summary>
 /// <typeparam name="T">值类型</typeparam>
 /// <param name="name">子节名</param>
 /// <param name="settingName">子节名称</param>
 /// <returns>配置值集合</returns>
 public static List <T> GetSettings <T>(this IConfigSettingElement element, string name, string settingName) where T : IConfigSettingElement, new()
 {
     return(GetSettingsWithInitializer <T>(element, name, settingName, null));
 }
示例#7
0
 /// <summary>
 /// 获取配置值
 /// </summary>
 /// <typeparam name="T">值类型</typeparam>
 /// <param name="settingElement">强类型配置实例</param>
 /// <param name="name">值名</param>
 /// <param name="defaultValue">值缺省值</param>
 /// <param name="required">是否必须配置</param>
 /// <returns>配置值</returns>
 public static T GetSetting <T>(this IConfigSettingElement settingElement, string name, T defaultValue = default, bool required = false)
 {
     return(settingElement.ConfigSetting.GetSetting(name, defaultValue, required));
 }
示例#8
0
 public static T GetObject <T>(this IConfigSettingElement settingElement, string objectSettingName)
 {
     return(settingElement.GetObject <T>(objectSettingName, null));
 }
示例#9
0
 /// <summary>
 /// 获取配置值
 /// </summary>
 /// <typeparam name="T">值类型</typeparam>
 /// <param name="settingElement">强类型配置实例</param>
 /// <param name="name">值名</param>
 /// <returns>配置值</returns>
 public static T GetSetting <T>(this IConfigSettingElement settingElement, string name)
 {
     return(settingElement.GetSetting(name, default(T)));
 }
示例#10
0
 public static T GetCachedObject <T>(this IConfigSettingElement settingElement, string objectSettingName, bool autoInit)
 {
     return(settingElement.GetCachedObject <T>(objectSettingName, autoInit, null));
 }
示例#11
0
 public static T GetCachedObject <T>(this IConfigSettingElement settingElement, string objectSettingName, bool autoInit, Action <T> initializer)
 {
     return(settingElement.GetObjectContext(objectSettingName, () => settingElement.GetObject(objectSettingName, autoInit, initializer)));
 }
示例#12
0
 /// <summary>
 /// 获取配置值
 /// </summary>
 /// <typeparam name="T">值类型</typeparam>
 /// <param name="settingElement">强类型配置实例</param>
 /// <param name="name">值名</param>
 /// <param name="defaultValue">值缺省值</param>
 /// <returns>配置值</returns>
 public static T GetCachedSetting <T>(this IConfigSettingElement settingElement, string name, T defaultValue)
 {
     return(settingElement.GetObjectContext(name, () => settingElement.GetSetting(name, defaultValue)));
 }
示例#13
0
 /// <summary>
 /// 获取配置值
 /// </summary>
 /// <typeparam name="T">值类型</typeparam>
 /// <param name="settingElement">强类型配置实例</param>
 /// <returns>配置值</returns>
 public static T GetCachedSetting <T>(this IConfigSettingElement settingElement)
 {
     return(settingElement.GetObjectContext(typeof(IConfigSettingElement), () => settingElement.GetSetting <T>()));
 }
示例#14
0
 /// <summary>
 /// 获取配置值集合
 /// </summary>
 /// <typeparam name="T">值类型</typeparam>
 /// <param name="settingElement">强类型配置实例</param>
 /// <param name="name">值名</param>
 /// <param name="settingName">集合值名</param>
 /// <param name="initializer">对元素进行初始化</param>
 /// <returns>配置值集合</returns>
 public static ICollection <T> GetRequiredSettingsWithInitializer <T>(this IConfigSettingElement settingElement, string name, string settingName, Action <T> initializer) where T : IConfigSettingElement, new()
 {
     return(settingElement.ConfigSetting.GetRequiredSettingsWithInitializer(name, settingName, initializer));
 }
示例#15
0
 /// <summary>
 /// 获取配置值集合
 /// </summary>
 /// <typeparam name="T">值类型</typeparam>
 /// <param name="settingElement">强类型配置实例</param>
 /// <param name="name">值名</param>
 /// <param name="settingName">集合值名</param>
 /// <returns>配置值集合</returns>
 public static ICollection <T> GetRequiredSettings <T>(this IConfigSettingElement settingElement, string name, string settingName) where T : IConfigSettingElement, new()
 {
     return(settingElement.ConfigSetting.GetRequiredSettings <T>(name, settingName));
 }
示例#16
0
 /// <summary>
 /// 获取必须配置的值
 /// </summary>
 /// <param name="settingElement">强类型配置实例</param>
 /// <param name="name">值名</param>
 /// <returns>配置值</returns>
 public static string GetRequiredSetting(this IConfigSettingElement settingElement, string name)
 {
     return(settingElement.ConfigSetting.GetRequiredSetting(name));
 }
示例#17
0
 /// <summary>
 /// 获取必须配置的值
 /// </summary>
 /// <typeparam name="T">值类型</typeparam>
 /// <param name="settingElement">强类型配置实例</param>
 /// <returns>配置值</returns>
 public static T GetRequiredSetting <T>(this IConfigSettingElement settingElement)
 {
     return(settingElement.ConfigSetting.GetRequiredSetting <T>());
 }
示例#18
0
 /// <summary>
 /// 获取配置值
 /// </summary>
 /// <typeparam name="T">值类型</typeparam>
 /// <param name="settingElement">强类型配置实例</param>
 /// <returns>配置值</returns>
 public static T GetSetting <T>(this IConfigSettingElement settingElement)
 {
     return(settingElement.GetSetting <T>(null));
 }
示例#19
0
 public static T GetCachedObject <T>(this IConfigSettingElement settingElement, string objectSettingName, Action <T> initializer)
 {
     return(settingElement.GetCachedObject(objectSettingName, true, initializer));
 }
示例#20
0
 /// <summary>
 /// 获取配置值集合
 /// </summary>
 /// <typeparam name="T">值类型</typeparam>
 /// <param name="settingElement">强类型配置实例</param>
 /// <param name="name">值名</param>
 /// <param name="settingName">集合值名</param>
 /// <returns>配置值集合</returns>
 public static T[] GetCachedSettings <T>(this IConfigSettingElement settingElement, string name, string settingName) where T : IConfigSettingElement, new()
 {
     return(settingElement.GetObjectContext(name, () => settingElement.GetSettings <T>(name, settingName).ToArray()));
 }
示例#21
0
 public static object GetCachedObject(this IConfigSettingElement settingElement, string objectSettingName, bool autoInit)
 {
     return(settingElement.GetObjectContext(objectSettingName, () => settingElement.GetObject(objectSettingName, autoInit)));
 }
示例#22
0
 /// <summary>
 /// 获取配置值集合
 /// </summary>
 /// <typeparam name="T">值类型</typeparam>
 /// <param name="settingElement">强类型配置实例</param>
 /// <param name="name">值名</param>
 /// <param name="settingName">集合值名</param>
 /// <param name="initializer">对元素进行初始化</param>
 /// <returns>配置值集合</returns>
 public static T[] GetCachedSettingsWithInitializer <T>(this IConfigSettingElement settingElement, string name, string settingName, Action <T> initializer) where T : IConfigSettingElement, new()
 {
     return(settingElement.GetObjectContext(name, () => settingElement.GetSettingsWithInitializer(name, settingName, initializer).ToArray()));
 }
示例#23
0
            private static IConfigSettingElement GetSetting(ObjectServiceBase objectService, IObjectSetting objectSetting, IConfigSettingElement setting)
            {
                setting.ConfigSetting = objectService.GetObjectSettingInternal(objectSetting);
                var handlerName = objectSetting.SettingSet.Value;

                if (!string.IsNullOrEmpty(handlerName))
                {
                    var handler = objectService.GetOrCreateObject <ISettingHandler>(handlerName);
                    if (handler != null)
                    {
                        setting = handler.GetSetting(setting);
                    }
                }
                return(setting);
            }
示例#24
0
 /// <summary>
 /// 获取配置值
 /// </summary>
 /// <typeparam name="T">值类型</typeparam>
 /// <param name="settingElement">强类型配置实例</param>
 /// <param name="name">值名</param>
 /// <param name="defaultValue">值缺省值</param>
 /// <returns>配置值</returns>
 public static T GetSetting <T>(this IConfigSettingElement settingElement, string name, T defaultValue)
 {
     return(settingElement.ConfigSetting.GetSetting(name, defaultValue));
 }