Esempio n. 1
0
        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++;
            }
        }