private static void SetObjectSetting(ObjectServiceBase objectService, IObjectSetting objectSetting, object instance) { if(objectSetting.SettingSet == null || string.IsNullOrEmpty(objectSetting.SettingSet.TypeName)) { return; } var typeName = objectService.GetTypeNameInternal(objectSetting.SettingSet.TypeName, objectSetting.Namespace); var setting = (IConfigSettingElement)TypeHelper.CreateObject(typeName, typeof(IConfigSettingElement), false); setting = GetSetting(objectService, objectSetting, setting); if (setting == null) { return; } if (instance is ISettingRequired) { ((ISettingRequired)instance).Setting = setting; } var settingType = setting.GetType(); var iinitializableType = typeof (IInitializable<>).MakeGenericType(settingType); if (iinitializableType.IsInstanceOfType(instance)) { var mi = iinitializableType.GetMethod("Init"); object returnValue; TypeHelper.TryInvoke(instance, mi, out returnValue, false, setting); } var isettingRequiredType = typeof(ISettingRequired<>).MakeGenericType(settingType); if(isettingRequiredType.IsInstanceOfType(instance)) { var property = isettingRequiredType.GetProperty("Setting"); try { property.SetValue(instance, setting, null); } catch { } } }
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; }
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); }
private static void SetObjectSetting(ObjectServiceBase objectService, IObjectSetting objectSetting, object instance) { if (objectSetting.SettingSet == null || string.IsNullOrEmpty(objectSetting.SettingSet.TypeName)) { return; } var typeName = objectService.GetTypeNameInternal(objectSetting.SettingSet.TypeName, objectSetting.Namespace); var setting = (IConfigSettingElement)TypeHelper.CreateObject(typeName, typeof(IConfigSettingElement), false); setting = GetSetting(objectService, objectSetting, setting); if (setting == null) { return; } if (instance is ISettingRequired) { ((ISettingRequired)instance).Setting = setting; } var settingType = setting.GetType(); var iinitializableType = typeof(IInitializable <>).MakeGenericType(settingType); if (iinitializableType.IsInstanceOfType(instance)) { var mi = iinitializableType.GetMethod("Init"); object returnValue; TypeHelper.TryInvoke(instance, mi, out returnValue, false, setting); } var isettingRequiredType = typeof(ISettingRequired <>).MakeGenericType(settingType); if (isettingRequiredType.IsInstanceOfType(instance)) { var property = isettingRequiredType.GetProperty("Setting"); try { property.SetValue(instance, setting, null); } catch { } } }
public ObjectBuilderInternal(ObjectServiceBase objectService) { this.ObjectService = objectService; this.ObjectSettingDependencies = new Dictionary <IObjectSetting, bool>(); }
public ObjectBuilderInternal(ObjectServiceBase objectService) { this.ObjectService = objectService; this.ObjectSettingDependencies = new Dictionary<IObjectSetting, bool>(); }