public void Build(Expression expression) { PartialEvaluator evaluator = new PartialEvaluator(); Expression evaluatedExpression = evaluator.Eval(expression); this.m_arguments = new List<object>(); this.m_conditionParts = new Stack<string>(); this.Visit(evaluatedExpression); this.Arguments = this.m_arguments.ToArray(); this.Condition = this.m_conditionParts.Count > 0 ? this.m_conditionParts.Pop() : null; }