protected override bool DoTranslate( Match match, DynamicExpression dynamicExpression, TranslationContext context, out string translated) { var subjectObject = dynamicExpression.Arguments.First(); var subject = context.Translate(subjectObject); var methodName = match.Groups["MethodName"].Value; var method = subjectObject.Type.GetPublicMethod(methodName); var methodArguments = dynamicExpression.Arguments.Skip(1).ToArray(); var methodInfo = GetMethodInfo( methodName, method, methodArguments, dynamicExpression.Type); translated = MethodCallExpressionTranslator.GetMethodCall( subject, methodInfo, methodArguments, dynamicExpression, context); return(true); }
protected override bool DoTranslate( Match match, DynamicExpression dynamicExpression, TranslationContext context, out string translated) { translated = GetMemberAccess(match, dynamicExpression.Arguments, context); return(true); }
protected override bool DoTranslate( Match match, DynamicExpression dynamicExpression, TranslationContext context, out string translated) { var target = DynamicMemberAccessTranslator.GetMemberAccess(match, dynamicExpression.Arguments, context); var value = dynamicExpression.Arguments.Last(); translated = AssignmentExpressionTranslator.GetAssignment(target, ExpressionType.Assign, value, context); return(true); }
public bool TryTranslate( string operationDescription, DynamicExpression dynamicExpression, TranslationContext context, out string translated) { var match = _operationMatcher.Match(operationDescription); if (match.Success) { return(DoTranslate(match, dynamicExpression, context, out translated)); } translated = null; return(false); }
protected abstract bool DoTranslate( Match match, DynamicExpression dynamicExpression, TranslationContext context, out string translated);