public IBeanDefinitionContainer RegisterBeanDefinition(IBeanDefinition beanDefinition) { foreach (var type in beanDefinition.AutoWiredTypes) { if (!_registrations.ContainsKey(type)) { _registrations[type] = new BeanDefinitionHolder(); } _registrations[type].Add(beanDefinition); } return(this); }
public bool IsMatch(IBeanDefinition beanDefinition, IConfiguration configuration) { var profiles = beanDefinition.Profiles; var activeProfiles = (configuration["profiles:active"] ?? "" + "," + configuration["UNITY_ADDON_PROFILES"] ?? "").Split(',') .Select(p => p.Trim()) .Where(p => !string.IsNullOrWhiteSpace(p)); if (profiles.Length > 0 && !profiles.Any(p => activeProfiles.Contains(p))) { return(true); } return(false); }
public bool Filter(IBeanDefinition definition) { if (_excludeFilters.Any(f => f.IsMatch(definition, Configuration))) { return(false); } if (_includeFilters.Count() == 0 || _includeFilters.Any(f => f.IsMatch(definition, Configuration))) { return(true); } return(false); }
public override void PreBuildUp(ref BuilderContext context) { var appContainer = Sp.UnityContainer; IBeanDefinition beanDef = null; if (BeanDefinitionContainer.HasBeanDefinition(context.Type, context.Name)) { beanDef = BeanDefinitionContainer.GetBeanDefinition(context.Type, context.Name); } else if (context.Type.IsGenericType && BeanDefinitionContainer.HasBeanDefinition(context.Type.GetGenericTypeDefinition(), context.Name)) { var genericTypeDef = context.Type.GetGenericTypeDefinition(); beanDef = BeanDefinitionContainer.GetBeanDefinition(genericTypeDef, context.Name); } if (beanDef != null && beanDef.Scope is SingletonLifetimeManager && context.Container != appContainer) { context.Existing = appContainer.Resolve(context.Type, context.Name); context.BuildComplete = true; return; } base.PreBuildUp(ref context); }
public override void Add(IBeanDefinition beanDefinition) { ConfigureBeans(config => config.Add(beanDefinition)); }
public bool IsMatch(IBeanDefinition beanDefinition, IConfiguration configuration) { return(_namespaces.Any(ns => beanDefinition.Namespace.StartsWith(ns))); }
public abstract void Add(IBeanDefinition beanDefinition);