public DynamicMemberWriteTranslator( DynamicMemberAccessTranslator memberAccessTranslator, AssignmentExpressionTranslator assignmentTranslator) : base(@"^SetMember (?<MemberName>[^\(]+)\(") { _memberAccessTranslator = memberAccessTranslator; _assignmentTranslator = assignmentTranslator; }
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 DynamicExpressionTranslator( MemberAccessExpressionTranslator memberAccessTranslator, AssignmentExpressionTranslator assignmentTranslator, MethodCallExpressionTranslator methodCallTranslator) : base(ExpressionType.Dynamic) { var dynamicMemberAccessTranslator = new DynamicMemberAccessTranslator(memberAccessTranslator); _translators = new DynamicOperationTranslatorBase[] { dynamicMemberAccessTranslator, new DynamicMemberWriteTranslator(dynamicMemberAccessTranslator, assignmentTranslator), new DynamicMethodCallTranslator(methodCallTranslator) }; }