public IActivationStrategy?ApplyResolutionPolicy(IBindingRequest request) { var targetType = ApplyConvention(request.DesiredType); return(targetType == null ? null : TypeActivatorFactory.CreateTypeActivator(targetType, ConstructorSelectors.MaximumArgumentCount)); }
public IActivationStrategy?GetStrategy(IBindingRequest request, CachedResolutionPolicy cache) { var finalTargetType = genericTemplate.MakeGenericType(request.DesiredType.GetGenericArguments()); var activator = cache.Bind(request.DesiredType, true).DoBinding( TypeActivatorFactory.CreateTypeActivator( finalTargetType, constructorSelector) ); options?.Invoke(activator); return(activator.GetFinalFactory()); }
public IActivationStrategy?ApplyResolutionPolicy(IBindingRequest request) => IsCreatable(request.DesiredType) ? TypeActivatorFactory.CreateTypeActivator(request.DesiredType, ConstructorSelectors.MaximumArgumentCount) : null;
public void FindsMostNumerousConstructor() { TypeActivatorFactory.CreateTypeActivator(typeof(TwoNonOptimalConstructors), ConstructorSelectors.EmulateDotNet); // should not throw }
public IActivationOptions <TSource> ToType(Type type, Func <IList <ConstructorInfo>, IActivationStrategy> picker) => DoBinding(TypeActivatorFactory.CreateTypeActivator(type, picker));