Получить фактический тип возвращаемого значения из экземпляра Expression >

У меня есть метод, который принимает экземпляр Expression > . Я хочу получить фактический тип данных, возвращаемый конкретным экземпляром выражения, а не объект .

Я могу заставить его работать для прямых ссылок на свойства, поэтому, если я передаю выражение x => x.IntegerProperty , я могу получить ссылку на тип для целого числа. Этот подход требует преобразования его в MemberExpression.

Однако я не могу заставить его работать с произвольными выражениями. Например, если выражение x => x.IntegerProperty.ToString () , я хочу получить ссылку на тип для строки. Я не могу скомпилировать это в MemberExpression, и если я просто .Compile () его и проверю тип возвращаемого значения, я получу «объект».

Как мне посмотреть на конкретный экземпляр выражения и определить фактический тип возвращаемого значения?

12
задан Jeff Mercado 8 November 2011 в 18:40
поделиться