internal UnityContainer(BuildStrategy strategy) : this() { switch (strategy) { case BuildStrategy.Compiled: _buildStrategy = CompilingFactory; Defaults.Set(typeof(ResolveDelegateFactory), _buildStrategy); break; case BuildStrategy.Resolved: _buildStrategy = ResolvingFactory; Defaults.Set(typeof(ResolveDelegateFactory), _buildStrategy); break; } }
public ResolveDelegateFactory GetFactory() { // From registration ResolveDelegateFactory policy = Registration.Get <ResolveDelegateFactory>(); if (null != policy) { return(policy); } if (Registration is ExplicitRegistration registration) { #if NETCOREAPP1_0 || NETSTANDARD1_0 if (Type?.GetTypeInfo().IsGenericType ?? false) #else if (Type?.IsGenericType ?? false) #endif { return(((UnityContainer)Container).GetFactoryPolicy(Type.GetGenericTypeDefinition(), Name) ?? ((UnityContainer)Container).Defaults.ResolveDelegateFactory); } else if (RegistrationType.IsArray) { return(ArrayResolver.Factory); } } else { #if NETCOREAPP1_0 || NETSTANDARD1_0 if (RegistrationType.GetTypeInfo().IsGenericType) #else if (RegistrationType.IsGenericType) #endif { return(((UnityContainer)Container).GetFactoryPolicy(RegistrationType.GetGenericTypeDefinition(), Name) ?? ((UnityContainer)Container).Defaults.ResolveDelegateFactory); } else if (RegistrationType.IsArray) { return(ArrayResolver.Factory); } } return(((UnityContainer)Container).GetFactoryPolicy(Type) ?? ((UnityContainer)Container).Defaults.ResolveDelegateFactory); }
public DefaultPolicies(ResolveDelegateFactory factory) : base(typeof(ResolveDelegateFactory), factory) { }