public IActivationStrategy?ApplyResolutionPolicy(IBindingRequest request)
        {
            var targetType = ApplyConvention(request.DesiredType);

            return(targetType == null ? null :
                   TypeActivatorFactory.CreateTypeActivator(targetType, ConstructorSelectors.MaximumArgumentCount));
        }
Beispiel #2
0
        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());
        }
Beispiel #3
0
 public IActivationStrategy?ApplyResolutionPolicy(IBindingRequest request) =>
 IsCreatable(request.DesiredType) ?
 TypeActivatorFactory.CreateTypeActivator(request.DesiredType,
                                          ConstructorSelectors.MaximumArgumentCount) : null;
Beispiel #4
0
 public void FindsMostNumerousConstructor()
 {
     TypeActivatorFactory.CreateTypeActivator(typeof(TwoNonOptimalConstructors),
                                              ConstructorSelectors.EmulateDotNet); // should not throw
 }
Beispiel #5
0
 public IActivationOptions <TSource> ToType(Type type, Func <IList <ConstructorInfo>, IActivationStrategy> picker) =>
 DoBinding(TypeActivatorFactory.CreateTypeActivator(type, picker));