Exemple #1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="expr"></param>
        /// <param name="callExpression"></param>
        /// <returns></returns>
        internal static bool TryMatchLocalExpression(Expression expr, out MethodCallExpression callExpression)
        {
            bool result;

            try
            {
                LocalDMSExpressionChecker localExpressionChecker = new LocalDMSExpressionChecker();
                Expression exprCopy = localExpressionChecker.Visit(expr);
                result = localExpressionChecker._foundSpecialMethod;
                if (result)
                {
                    callExpression = exprCopy as MethodCallExpression;
                }
                else
                {
                    callExpression = null;
                }
            }
            catch (Exception arg)
            {
                Console.WriteLine("TryMatchLocalExpression failed: " + arg);
                throw;
            }
            return(result);
        }
Exemple #2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="expr"></param>
        /// <param name="funcReturningObj"></param>
        /// <returns></returns>
        internal static bool TryMatchLocalExpression(Expression expr, out FunctionReturningObject funcReturningObj)
        {
            bool result;

            try
            {
                LocalDMSExpressionChecker localExpressionChecker = new LocalDMSExpressionChecker();
                localExpressionChecker.Visit(expr);
                bool flag = !localExpressionChecker._foundParameter && !localExpressionChecker._foundSpecialMethod && localExpressionChecker._foundConstant;
                if (flag)
                {
                    funcReturningObj = LocalDMSExpressionChecker.CompileLocalExpression(expr);
                }
                else
                {
                    funcReturningObj = null;
                }
                result = flag;
            }
            catch (Exception arg)
            {
                System.Diagnostics.Debug.WriteLine("TryMatchLocalExpression failed: " + arg);
                throw;
            }
            return(result);
        }