public MultipleValueActivator(ITypeResolutionPolicy innerResolver, Type typeToResolve) { this.innerResolver = innerResolver; this.typeToResolve = typeToResolve; typedListCreator = ActivationCompiler.Compile(typeof(List <>).MakeGenericType(typeToResolve), Array.Empty <Type>()); }
public static TypeActivationStrategy StrategyFromConstructor(ConstructorInfo constructor) { return(new TypeActivationStrategy( ActivationCompiler.Compile(constructor), constructor.GetParameters())); }
public ScopedTupleActivationStrategy(Type desiredType) { this.desiredType = desiredType; funcCreator = ActivationCompiler.Compile(desiredType, desiredType.GetGenericArguments().ToArray()); }
public ClearableAsyncFunctionActivationStrategy(Type resultTupleType) : base(GetCreatorFunctionType(resultTupleType)) { tupleCreator = ActivationCompiler.Compile(resultTupleType, typeof(Action), GetCreatorFunctionType(resultTupleType)); }
private T MakeObject <T>(Type[] parameters, object[] arguments) { var func = ActivationCompiler.Compile(typeof(T), parameters); return((T)func(arguments)); }