コード例 #1
0
 public DynamicMemberWriteTranslator(
     DynamicMemberAccessTranslator memberAccessTranslator,
     AssignmentExpressionTranslator assignmentTranslator)
     : base(@"^SetMember (?<MemberName>[^\(]+)\(")
 {
     _memberAccessTranslator = memberAccessTranslator;
     _assignmentTranslator   = assignmentTranslator;
 }
コード例 #2
0
            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);
            }
コード例 #3
0
        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)
            };
        }