Как пометить параметр атрибутом в динамически создаваемом лямбда-выражении?C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Как пометить параметр атрибутом в динамически создаваемом лямбда-выражении?

Сообщение Anonymous »

Сделав следующее, я получаю простую лямбду для суммирования двух целых чисел:

Код: Выделить всё

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)
Я ничего не могу найти ни в Expression.Parameter(), ни в каких-либо других фабричных методах класса Expression.
Но подобное решение позволило бы мне свернуть уровень конечных точек/контроллера с помощью CQRS, избегая большого количества шаблонов (поскольку первый мало что делает).

Подробнее здесь: https://stackoverflow.com/questions/784 ... bda-expres
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»