Можно ли анализировать вложенные выражения в System.Linq.Dynamic?
Используя этот пакет, я пытаюсь проанализировать такие выражения, как следующие, используя одну из перегрузокDynamicExpression.Parse
или DynamicExpression.ParseLambda
.
Пример лямбды, которую я пытаюсь выразить:
x => x.SomeCollection.Max(y => y.SomeValue)
Пример выражения, который я придумал для представления вышеуказанного выражения, а затем проанализирую:
x.SomeCollection.Max(y.SomeValue)
Обратите внимание, что я знаю типы x
а также y
и я могу создать из них коллекцию параметров и передать ее одному из Parse
функции.
Я считаю, что то, что я делаю, похоже на следующий фрагмент из документации, за исключением того, что мой второй параметр вложен внутри функции.
ParameterExpression x = Expression.Parameter(typeof(int), "x");
ParameterExpression y = Expression.Parameter(typeof(int), "y");
LambdaExpression e = DynamicExpression.ParseLambda(new ParameterExpression[] { x, y }, null, "(x + y) * 2");
Ожидается ли, что такое выражение может быть проанализировано библиотекой, или это неподдерживаемое поведение?