Example #1
0
        private static Expression DeserializeInternal(IPredyExpression predy)
        {
            if (predy is PredyParameterExpression parameterPredy)
            {
                return(DeserializeParameter(parameterPredy));
            }
            if (predy is PredyMemberExpression memberPredy)
            {
                return(DeserializeMember(memberPredy));
            }
            if (predy is PredyConstantExpression constantPredy)
            {
                return(DeserializeConstant(constantPredy));
            }
            if (predy is PredyBinaryExpression binaryPredy)
            {
                return(DeserializeBinary(binaryPredy));
            }
            if (predy is PredyMethodCallExpression methodCallPredy)
            {
                return(DeserializeMethodCall(methodCallPredy));
            }
            if (predy is PredyLambdaExpression predyLambda)
            {
                return(DeserializeLambda(predyLambda));
            }
            if (predy is PredyUnaryExpression unaryPredy)
            {
                return(DeserializeUnary(unaryPredy));
            }

            return(Expression.Constant(false));
        }
Example #2
0
        private static PredyBinaryExpression SerializeBinary(BinaryExpression exp)
        {
            IPredyExpression left  = SerializeInternal(exp.Left);
            IPredyExpression right = SerializeInternal(exp.Right);

            return(new PredyBinaryExpression
            {
                Left = left,
                Right = right,
                NodeType = exp.NodeType
            });
        }