Можно ли анализировать вложенные выражения в 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");

Ожидается ли, что такое выражение может быть проанализировано библиотекой, или это неподдерживаемое поведение?

0 ответов

Другие вопросы по тегам