Getting the object out of a MemberExpression?
c#, expression-trees, lambda
Solution
Expression<Func<string>> expr = () => foo.Bar;
var me = (MemberExpression)((MemberExpression)expr.Body).Expression;
var ce = (ConstantExpression)me.Expression;
var fieldInfo = ce.Value.GetType().GetField(me.Member.Name, BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);
var value = (Foo)fieldInfo.GetValue(ce.Value);
Problem
So, lets say I have the following expression in C#: ``` Expression<Func<string>> expr = () => foo.Bar; ``` How do I pull out a reference to foo?