Есть ли способ преобразовать строковое представление lambda в lambda Func?
Func<Product, bool> func = Parse<Product, bool>("product => product.Name.Length > 0");
Я попробовал Dynamic LINQ, но он не работает должным образом - например, он не ожидает синтаксиса ambda = > .
Сводка ответов:
- написание собственного С# -компилятора - очень забавно
- запуск внешнего компилятора (например, csc.exe) - очень медленно
- с помощью DLINQ - как я уже сказал, я не вижу, как он может анализировать выражения lambda
Зачем мне это нужно: потому что нет способа передать lambdas в пользовательские атрибуты, например
[Secure(role => role.CanDoThis && role.AllowedCount > 5)]
Итак, в качестве обходного пути я хотел бы передать лямбда как строку: "role = > role.CanDoThis & role.AllowedCount > 5". Но похоже, что мне придется использовать DLINQ следующим образом: "CanDoThis && AllowedCount > 5" - поскольку этот синтаксис он понимает. Но мой вопрос касался истинных лямбда, я уже использовал DLINQ во время запроса.