我有一个函数,它将Expression<Func<T>>
作为参数并返回一个自定义类
MyExpressionInfo GetExpressionInfo<T>(Expression<Func<T>> expression)
给定任何表达式,假设表达式“指向”一个属性,如何获取表达式中最终属性的PropertyInfo以及具有该PropertyInfo的对象实例。
实施例
var info = GetExpressionInfo(myObject.AProperty);
var info2 = GetExpressionInfo(GetSomething().AProperty);
var info3 = GetExpressionInfo(GetSomethingElse().AProperty.GetThirdThing().AProperty);
所以在上面我希望结果是
我可以像第一部分那样获得PropertyInfo
MemberExpression memberExpression = (MemberExpression)expression.Body;
PropertyInfo boundPropertyInfo = memberExpression.Member as PropertyInfo;
if (boundPropertyInfo == null)
throw new ApplicationException("Bound expression does not resolve to a Property");
如何解析表达式其余部分的值?