示例#1
0
        public static bool Evaluate(string questionCode, string displayLogic, string response)
        {
            var isInverse = displayLogic.Contains("!=");

            displayLogic = displayLogic.Replace(questionCode, "a");

            if (isInverse)
            {
                displayLogic = displayLogic.Replace("!=", "==");
            }

            var expression = new DynamicExpression(displayLogic, ExpressionLanguage.Csharp);

            var context = new ExpressionContext();
            context.Variables.Add("a", response);

            var result = (bool)expression.Invoke(context);

            return isInverse ? !result : result;
        }