/// <summary> /// Creates this object builder /// </summary> /// <param name="type"></param> public ObjectBuilder(IEngineConfigurationType type) { InnerType = type.RegisteredType; if (type.GetFactory() != null) { mFactory = type.GetFactory().Build(); } type.GetRegisteredMembers() .ToList() .ForEach(x => { List<IDatasource> sources = x.GetDatasources().Select(s => s.Build()).ToList(); if (x.Member.IsField) { if (sources.Count == 0) { return; } AddAction(new ObjectFieldSetFromSourceAction( (EngineTypeFieldMember) x.Member, sources.First())); } else if (x.Member.IsProperty) { if (sources.Count == 0) { return; } AddAction(new ObjectPropertySetFromSourceAction( (EngineTypePropertyMember) x.Member, sources.First())); } else if (x.Member.IsMethod) { AddAction(new ObjectMethodInvokeFromSourceAction( (EngineTypeMethodMember) x.Member, sources )); } }); }
/// <summary> /// Creates this object builder /// </summary> /// <param name="type"></param> public ObjectBuilder(IEngineConfigurationType type) { this.InnerType = type.RegisteredType; if (type.GetFactory() != null) { mFactory = type.GetFactory().Build(); } type.GetRegisteredMembers() .ToList() .ForEach(x => { var sources = x.GetDatasources().Select(s => s.Build()).ToList(); if (x.Member.IsField) { if (sources.Count == 0) { return; } this.AddAction(new ObjectFieldSetFromSourceAction( (EngineTypeFieldMember)x.Member, sources.First())); } else if (x.Member.IsProperty) { if (sources.Count == 0) { return; } this.AddAction(new ObjectPropertySetFromSourceAction( (EngineTypePropertyMember)x.Member, sources.First())); } else if (x.Member.IsMethod) { this.AddAction(new ObjectMethodInvokeFromSourceAction( (EngineTypeMethodMember)x.Member, sources )); } }); }
public override void Apply(IEngineConfigurationType type) { var typeProvider = mConfigurationProvider.GetConfigurationTypes().Where(x => x.GetConfigurationType() == type.RegisteredType) .FirstOrDefault(); if (typeProvider != null && typeProvider.GetFactory() != null) { type.SetFactory(typeProvider.GetFactory()); } else if (type.GetFactory() == null) { // Activator.CreateInstance as a last resort Type fallbackType = typeof(FallbackObjectFactory <>).MakeGenericType(type.RegisteredType); type.SetFactory(new DatasourceFactory(fallbackType)); } }
public override void Apply(IEngineConfigurationType type) { var typeProvider = mConfigurationProvider.GetConfigurationTypes().Where(x => x.GetConfigurationType() == type.RegisteredType) .FirstOrDefault(); if(typeProvider != null && typeProvider.GetFactory() != null) { type.SetFactory(typeProvider.GetFactory()); } else if (type.GetFactory() == null) { // Activator.CreateInstance as a last resort Type fallbackType = typeof (FallbackObjectFactory<>).MakeGenericType(type.RegisteredType); type.SetFactory(new DatasourceFactory(fallbackType)); } }