public SerializableInvocationExpression(InvocationExpression expression, SerializableExpressionConverter converter)
      : base(expression)
    {
      Contract.Requires(expression != null);
      Contract.Requires(converter != null);

      Arguments = converter.TryConvert(expression.Arguments);
      Expr = converter.TryConvert(expression.Expression);
    }
        public SerializableMethodCallExpression(MethodCallExpression expression, SerializableExpressionConverter converter)
            : base(expression)
        {
            Contract.Requires(expression != null);
            Contract.Requires(converter != null);

            Arguments = converter.TryConvert(expression.Arguments);
            Method    = SerializableExpressionConverter.Convert(expression.Method);
            Object    = converter.TryConvert(expression.Object);
        }
        public SerializableConditionalExpression(ConditionalExpression expression, SerializableExpressionConverter converter)
            : base(expression)
        {
            Contract.Requires(expression != null);
            Contract.Requires(converter != null);

            IfFalse = converter.TryConvert(expression.IfFalse);
            IfTrue  = converter.TryConvert(expression.IfTrue);
            Test    = converter.TryConvert(expression.Test);
        }
        public SerializableIndexExpression(IndexExpression expression, SerializableExpressionConverter converter)
            : base(expression)
        {
            Contract.Requires(expression != null);
            Contract.Requires(converter != null);

            Arguments = converter.TryConvert(expression.Arguments);
            Indexer   = expression.Indexer;
            Object    = converter.TryConvert(expression.Object);
        }
        public SerializableBlockExpression(BlockExpression expression, SerializableExpressionConverter converter)
            : base(expression)
        {
            Contract.Requires(expression != null);
            Contract.Requires(converter != null);

            Expressions = converter.TryConvert(expression.Expressions);
            Result      = converter.TryConvert(expression.Result);
            Variables   = converter.TryConvert <SerializableParameterExpression>(expression.Variables);
        }
Exemplo n.º 6
0
        public SerializableNewExpression(NewExpression expression, SerializableExpressionConverter converter)
            : base(expression)
        {
            Contract.Requires(expression != null);
            Contract.Requires(converter != null);

            Arguments   = converter.TryConvert(expression.Arguments);
            Constructor = expression.Constructor;
            Members     = converter.TryConvert(expression.Members);
        }
Exemplo n.º 7
0
        public SerializableLambdaExpression(LambdaExpression expression, SerializableExpressionConverter converter)
            : base(expression)
        {
            Contract.Requires(expression != null);
            Contract.Requires(converter != null);

            Body       = converter.TryConvert(expression.Body);
            Name       = expression.Name;
            Parameters = converter.TryConvert <SerializableParameterExpression>(expression.Parameters);
            TailCall   = expression.TailCall;
        }
Exemplo n.º 8
0
        public SerializableSwitchExpression(SwitchExpression expression, SerializableExpressionConverter converter)
            : base(expression)
        {
            Contract.Requires(expression != null);
            Contract.Requires(converter != null);

            Cases       = expression.Cases.Select(c => Tuple.Create(converter.TryConvert(c.Body), converter.TryConvert(c.TestValues))).ToList();
            Comparison  = SerializableExpressionConverter.Convert(expression.Comparison);
            DefaultBody = converter.TryConvert(expression.DefaultBody);
            SwitchValue = converter.TryConvert(expression.SwitchValue);
        }
Exemplo n.º 9
0
        public SerializableBinaryExpression(BinaryExpression expression, SerializableExpressionConverter converter)
            : base(expression)
        {
            Contract.Requires(expression != null);
            Contract.Requires(converter != null);

            Conversion     = converter.TryConvert <SerializableLambdaExpression>(expression.Conversion);
            IsLiftedToNull = expression.IsLiftedToNull;
            Left           = converter.TryConvert(expression.Left);
            Method         = SerializableExpressionConverter.Convert(expression.Method);
            Right          = converter.TryConvert(expression.Right);
        }
        public SerializableRuntimeVariablesExpression(RuntimeVariablesExpression expression, SerializableExpressionConverter converter)
            : base(expression)
        {
            Contract.Requires(expression != null);
            Contract.Requires(converter != null);

            Variables = converter.TryConvert <SerializableParameterExpression>(expression.Variables);
        }
        public SerializableNewArrayExpression(NewArrayExpression expression, SerializableExpressionConverter converter)
            : base(expression)
        {
            Contract.Requires(expression != null);
            Contract.Requires(converter != null);

            Expressions = converter.TryConvert(expression.Expressions);
        }
Exemplo n.º 12
0
        public SerializableTypeBinaryExpression(TypeBinaryExpression expression, SerializableExpressionConverter converter)
            : base(expression)
        {
            Contract.Requires(expression != null);
            Contract.Requires(converter != null);

            Expr        = converter.TryConvert(expression.Expression);
            TypeOperand = expression.TypeOperand;
        }
Exemplo n.º 13
0
        public SerializableListInitExpression(ListInitExpression expression, SerializableExpressionConverter converter)
            : base(expression)
        {
            Contract.Requires(expression != null);
            Contract.Requires(converter != null);

            Initializers  = expression.Initializers.Select(i => Tuple.Create(SerializableExpressionConverter.Convert(i.AddMethod), converter.TryConvert(i.Arguments))).ToList();
            NewExpression = converter.TryConvert <SerializableNewExpression>(expression.NewExpression);
        }
        public SerializableUnaryExpression(UnaryExpression expression, SerializableExpressionConverter converter)
            : base(expression)
        {
            Contract.Requires(expression != null);
            Contract.Requires(converter != null);

            Method  = SerializableExpressionConverter.Convert(expression.Method);
            Operand = converter.TryConvert(expression.Operand);
        }
Exemplo n.º 15
0
        public SerializableMemberExpression(MemberExpression expression, SerializableExpressionConverter converter)
            : base(expression)
        {
            Contract.Requires(expression != null);
            Contract.Requires(converter != null);

            Expr   = converter.TryConvert(expression.Expression);
            Member = converter.Convert(expression.Member);
        }
Exemplo n.º 16
0
        public SerializableMemberInitExpression(MemberInitExpression expression, SerializableExpressionConverter converter)
            : base(expression)
        {
            Contract.Requires(expression != null);
            Contract.Requires(converter != null);

            Bindings      = expression.Bindings.Select(converter.Convert).ToList();
            NewExpression = converter.TryConvert <SerializableNewExpression>(expression.NewExpression);
        }
Exemplo n.º 17
0
        public SerializableLabelExpression(LabelExpression expression, SerializableExpressionConverter converter)
            : base(expression)
        {
            Contract.Requires(expression != null);
            Contract.Requires(converter != null);

            DefaultValue = converter.TryConvert(expression.DefaultValue);
            TargetName   = expression.Target.Name;
            TargetType   = expression.Target.Type;
        }
        public SerializableGotoExpression(GotoExpression expression, SerializableExpressionConverter converter)
            : base(expression)
        {
            Contract.Requires(expression != null);
            Contract.Requires(converter != null);

            Kind       = expression.Kind;
            TargetName = expression.Target.Name;
            TargetType = expression.Target.Type;
            Value      = converter.TryConvert(expression.Value);
        }
        public SerializableLoopExpression(LoopExpression expression, SerializableExpressionConverter converter)
            : base(expression)
        {
            Contract.Requires(expression != null);
            Contract.Requires(converter != null);

            Body              = converter.TryConvert(expression.Body);
            BreakLabelType    = expression.BreakLabel.Type;
            BreakLabelName    = expression.BreakLabel.Name;
            ContinueLabelType = expression.ContinueLabel.Type;
            ContinueLabelName = expression.ContinueLabel.Name;
        }
Exemplo n.º 20
0
        public SerializableTryExpression(TryExpression expression, SerializableExpressionConverter converter)
            : base(expression)
        {
            Contract.Requires(expression != null);
            Contract.Requires(converter != null);

            Body     = converter.TryConvert(expression.Body);
            Fault    = converter.TryConvert(expression.Fault);
            Finally  = converter.TryConvert(expression.Finally);
            Handlers = expression.Handlers
                       .Select(h => Tuple.Create(
                                   converter.TryConvert(h.Body),
                                   converter.TryConvert(h.Filter),
                                   h.Test,
                                   converter.TryConvert <SerializableParameterExpression>(h.Variable)))
                       .ToList();
        }