private SelectedMethod CreateSelectedMethod(MethodInfo method) { var result = new SelectedMethod(method); foreach (ParameterInfo parameter in method.GetParameters()) { result.AddParameterResolver(this.CreateResolver(parameter)); } return(result); }
private IEnumerable <Expression> BuildMethodParameterExpressions(DynamicBuildPlanGenerationContext context, SelectedMethod method, string methodSignature) { int i = 0; var methodParameters = method.Method.GetParameters(); foreach (IDependencyResolverPolicy parameterResolver in method.GetParameterResolvers()) { yield return(context.CreateParameterExpression( parameterResolver, methodParameters[i].ParameterType, Expression.Call(null, SetCurrentOperationToResolvingParameterMethod, Expression.Constant(methodParameters[i].Name, typeof(string)), Expression.Constant(methodSignature), context.ContextParameter))); i++; } }