Getting the object out of a MemberExpression?

前端 未结 5 1858
野性不改
野性不改 2020-11-30 23:33

So, lets say I have the following expression in C#:

Expression> expr = () => foo.Bar;

How do I pull out a refer

5条回答
  •  青春惊慌失措
    2020-12-01 00:06

    Expression> 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);
    

提交回复
热议问题