Exemplo n.º 1
0
 internal InitialisationExpressionTranslator(MethodCallExpressionTranslator methodCallTranslator)
     : base(ExpressionType.ListInit, ExpressionType.MemberInit, ExpressionType.NewArrayInit)
 {
     _helpersByNodeType = new Dictionary <ExpressionType, IInitExpressionHelper>
     {
         [ExpressionType.ListInit]     = new ListInitExpressionHelper(),
         [ExpressionType.MemberInit]   = new MemberInitExpressionHelper(methodCallTranslator),
         [ExpressionType.NewArrayInit] = new ArrayInitExpressionHelper()
     };
 }
Exemplo n.º 2
0
            public MemberInitExpressionHelper(MethodCallExpressionTranslator methodCallTranslator)
                : base(exp => exp.NewExpression, exp => !exp.Arguments.Any())
            {
                _methodCallTranslator = methodCallTranslator;

                _bindingTranslatorsByType = new Dictionary <MemberBindingType, Func <MemberBinding, TranslationContext, string> >
                {
                    { MemberBindingType.Assignment, TranslateAssignmentBinding },
                    { MemberBindingType.ListBinding, TranslateListBinding },
                    { MemberBindingType.MemberBinding, TranslateMemberBinding }
                };
            }
Exemplo n.º 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)
            };
        }
Exemplo n.º 4
0
 public DynamicMethodCallTranslator(MethodCallExpressionTranslator methodCallTranslator)
     : base(@"^Call (?<MethodName>[^\(]+)\(")
 {
     _methodCallTranslator = methodCallTranslator;
 }