Как упомянуто в названии У меня есть выражение, где тип результата «хранящийся» в object
, который может быть все моих классов предметной области. Есть ли способ получить конкретное выражение (unboxing)?Generic распаковка выражения <Func <T, object>> в Expression <Func <T, TResult>>
ответ
Если я правильно понял ваш вопрос, что вы могли бы искать в Expression.Convert
Expression<Func<T,object>> original = // ... something
Expression<Func<T,TResult>> converted = Expression.Lambda<Func<T,TResult>>(
Expression.Convert(original.Body,typeof(TResult)),
original.Parameters);
Спасибо, это работает! Но еще один вопрос: когда мне нужно это unboxed выражение, я не знаю тип TResult (кроме того, что реализует IPersistable). Я мог запомнить/получить тип и упаковать вызов 'Unbox
Как бы вы хотели получить Func
Чтобы получить или удерживать тип, это не проблема. Но может ли этот вопрос быть полезен для новой темы? – core
- 1. Преобразовать Expression <Func <T,T,bool>> для выражения <Func<T,bool>>
- 2. Как конвертировать Func <T,bool> в Expression <Func<T,bool>>
- 3. Func <T>() vs Func <T> .Invoke()
- 4. Как бросить Expression <Func <T, DateTime>> в Expression <Func <T, object>>
- 5. Создание выражения <Func <IQueryable <T>, IOrderedQueryable <T> >>?
- 6. Подробнее о литье Func <T,T> и Expression <Func<T,T>>
- 7. Преобразование выражения <Func <T, bool?>> выражение <Func <T, bool>>
- 8. Expression <Func <T, bool>> аргумент метода
- 9. Регистрация Expression <Func<T,bool>>
- 10. Создание Expression <Func <T, object>> аргументы
- 11. Рефакторинг Func <T> в выражение <Func<T>>
- 12. Получить Func <T> и выражение <Func<T>> от одного параметра?
- 13. Получить форму выражения <Func<T>>
- 14. Создание динамического выражения <Func<T,Y>>
- 15. Получение от Func <T, T, bool> + T экземпляр для Expression <Func <T, bool>>
- 16. Сочинение Expression <Func <T, bool>> предикаты
- 17. Как преобразовать выражение <Func <T, object>> в выражение <Func <T, bool>>?
- 18. Почему Func <T> неоднозначный с Func <IEnumerable <T>>?
- 19. Преобразование выражения <Func <T, TProperty >> в выражение <Func <объект, объект >> и наоборот
- 20. Как преобразовать IQueryable <T> в выражение <Func <T, bool>>?
- 21. Инкапсулирующее действие <T> и Func <T>?
- 22. Moq framework Func <T,T>
- 23. LINQ-to-SQL: Преобразование Func <T, T, bool> в выражение <Func <T, T, bool>>
- 24. Как преобразовать выражение <Func <T, bool>> в предикат <T>
- 25. Обратное выражение <Func <T,TResult>> .Compile()?
- 26. Список выражений <Func <T, TProperty >>
- 27. Вытягивание экспрессии <Func <T, object>>
- 28. Как использовать Func <Task<T>> Синтаксис?
- 29. Expression <Func <T, bool>> из F # FUNC в LINQ
- 30. Преобразовать строку Func <T,Object>
Какие выражения могут быть использованы в теле лямбда-в? – Dennis