Преобразовать лямбда-выражение в строку - PullRequest
1 голос
/ 07 января 2011

Это может показаться странным запросом, однако с API, для которых требуется строка свойства фильтра, я подумал, что было бы неплохо иметь возможность преобразовать безопасное лямбда-выражение указанного типа, которое затем можно скомпилировать в строку запроса - аналогпо существу в Linq -> SQL.

Так, например:

 Func<TQueryObj, bool> 
 (invoice) => { invoice.Status == "DRAFT" && invoice.Type == "ACCREF" };

Преобразуется в

 Status=="DRAFT" && Type=="ACCREF"

В настоящее время я использую API выставления счетов, отсюда и пример.Есть ли способ добиться этого довольно просто?

Приветствия

1 Ответ

4 голосов
/ 07 января 2011

Вам нужно сделать унаследованный ExpressionVisitor, который будет рекурсивно ползать через Expression<Func<...>>.
Это будет непросто.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...