/// <summary> /// Generate an XElement that represents this expression. /// </summary> /// <param name="context">XML generation context.</param> internal XElement GetXElement(ExpressionXmlContext context) { return(context.CheckElement(this, () => new XElement("Expression", new XAttribute("resultType", ResultType.ToString( )), new XElement("Root", Root?.GetXElement(context)), new XElement("ListRoot", ListRoot?.GetXElement(context))))); }
private IEnumerable <T> EvaluateList <T>(EvaluationContext evalContext, Func <EvaluationContext, T> evaluator) { var list = ListRoot.VisitItems(evalContext); foreach (var handle in list) { handle.Activate(evalContext); T result = evaluator(evalContext); yield return(result); } }