Пример #1
0
 internal SerializableConditionalExpression(ConditionalExpression source, SerializationContext ctx, InterfaceType.Factory iftFactory)
     : base(source, ctx, iftFactory)
 {
     Test    = SerializableExpression.FromExpression(source.Test, ctx, iftFactory);
     IfTrue  = SerializableExpression.FromExpression(source.IfTrue, ctx, iftFactory);
     IfFalse = SerializableExpression.FromExpression(source.IfFalse, ctx, iftFactory);
 }
Пример #2
0
        internal SerializableNewExpression(NewExpression source, SerializationContext ctx, InterfaceType.Factory iftFactory)
            : base(source, ctx, iftFactory)
        {
            Constructor = new SerializableConstructorInfo(source.Constructor, iftFactory);
            if (source.Members != null)
            {
                Members = source.Members.Select(i => new SerializableMemberInfo(i, iftFactory)).ToArray();
            }

            Children = source.Arguments.Select(a => SerializableExpression.FromExpression(a, ctx, iftFactory)).ToArray();
        }
Пример #3
0
        internal SerializableMethodCallExpression(MethodCallExpression e, SerializationContext ctx, InterfaceType.Factory iftFactory)
            : base(e, ctx, iftFactory)
        {
            if (e.Object != null)
            {
                ObjectExpression = SerializableExpression.FromExpression(e.Object, ctx, iftFactory);
            }

            MethodName             = e.Method.Name;
            SerializableMethodType = iftFactory(e.Method.DeclaringType).ToSerializableType();
            ParameterTypes         = e.Method.GetParameters().Select(p => iftFactory(p.ParameterType).ToSerializableType()).ToArray();
            GenericArguments       = e.Method.GetGenericArguments().Select(p => iftFactory(p).ToSerializableType()).ToArray();

            if (e.Arguments != null)
            {
                Children = e.Arguments.Select(a => SerializableExpression.FromExpression(a, ctx, iftFactory)).ToArray();
            }
        }
Пример #4
0
 internal SerializableLambdaExpression(LambdaExpression e, SerializationContext ctx, InterfaceType.Factory iftFactory)
     : base(e, ctx, iftFactory)
 {
     Children = new[] { SerializableExpression.FromExpression(e.Body, ctx, iftFactory) }
     .Union(e.Parameters.Select(p => SerializableExpression.FromExpression(p, ctx, iftFactory))).ToArray();
 }
Пример #5
0
 internal SerializableMemberExpression(MemberExpression e, SerializationContext ctx, InterfaceType.Factory iftFactory)
     : base(e, ctx, iftFactory)
 {
     MemberName = e.Member.Name;
     Children   = new[] { SerializableExpression.FromExpression(e.Expression, ctx, iftFactory) };
 }
Пример #6
0
 internal SerializableUnaryExpression(UnaryExpression e, SerializableExpression.SerializationContext ctx, InterfaceType.Factory iftFactory)
     : base(e, ctx, iftFactory)
 {
     Children = new[] { SerializableExpression.FromExpression(e.Operand, ctx, iftFactory) };
 }
Пример #7
0
 internal SerializableBinaryExpression(BinaryExpression e, SerializableExpression.SerializationContext ctx, InterfaceType.Factory iftFactory)
     : base(e, ctx, iftFactory)
 {
     Children = new[] { SerializableExpression.FromExpression(e.Left, ctx, iftFactory), SerializableExpression.FromExpression(e.Right, ctx, iftFactory) };
 }