public IEnumerable <DictionaryBinderItem> GetItems() { foreach (var item in _collection) { var advResolver = new AdvancedDataResolver(n => item[n]); var text = ExpressionEvaluator.Eval(_textExpression, advResolver); var value = ExpressionEvaluator.Eval(_valueExpression, advResolver); var binder = new DictionaryBinderItem(text, value); yield return(binder); } }
private Object EvalObj(String expression, XMLContext context) { if (String.IsNullOrEmpty(expression)) { return(null); } var advResolver = new AdvancedDataResolver(context.GetValue); var expNode = ExpressionParser.GetOrParse(expression); var result = ExpressionEvaluator.Eval(expNode, advResolver); return(result); }
private Object GetExpressionsValue(String expression, IDataItem item) { ExpressionNode expNode; if (!_expressionCache.TryGetValue(expression, out expNode)) { expNode = ExpressionParser.Parse(expression); _expressionCache.Add(expression, expNode); } var advResolver = new AdvancedDataResolver(item.GetValueOrDefault); var expValue = ExpressionEvaluator.Eval(expNode, advResolver); return(expValue); }