Код: Выделить всё
using System.Linq.Expressions;
var xParam = Expression.Parameter(typeof(int), "x");
var yParam = Expression.Parameter(typeof(int), "y");
var sum = Expression.Add(xParam, yParam);
var lambda = Expression.Lambda(sum, [xParam, yParam]);
var func = lambda.Compile();
var result = func(1, 2);
Код: Выделить всё
var func = (x, y) => x + y;
var result = func(1, 2);
Это пригодится, например, если вы хотите динамически генерировать конечные точки минимального приложения API и вам нужно пометить параметры с помощью [FromServices]. Могу ли я сгенерировать подобную лямбду, используя деревья выражений?
Код: Выделить всё
([FromServices] ISender sender, [FromBody] LoginDto body, CancellationToken ct) =>
sender.Send(new LoginQuery(body), ct)
Но подобное решение позволило бы мне свернуть уровень конечных точек/контроллера с помощью CQRS, избегая большого количества шаблонов (поскольку первый мало что делает).
Подробнее здесь: https://stackoverflow.com/questions/784 ... bda-expres