public CSharpLamdaExpression GetExpression() { if (expression == null) { expression = interpreter.GetLamdaExpression(); } return(expression); }
public Delegate GetDelegate() { if (@delegate != null) { return(@delegate); } if (expression == null) { expression = interpreter.GetLamdaExpression(); } @delegate = expression.Compile(); return(@delegate); }
private Expression InvokeLamdaExpression(CSharpLamdaExpression lamdaExpression) { var instanceMember = invocationStatement.Method as InstanceMethodMemberStatement; var expression = lamdaExpression.GetExpression(); var arguments = new List <Expression>(); if (instanceMember != null) { arguments.Add(expressionInterpreterHandler.GetExpression(instanceMember.Parent)); } arguments.AddRange(invocationStatement.Arguments .Select(x => expressionInterpreterHandler.GetExpression(x)).ToArray()); return(Expression.Invoke(expression, arguments)); }