MemberExpression实际值

时间:2015-07-23 11:27:53

标签: c# linq

class SomeType
{
    public string Value { get; set; }
}

让我们说我必须创建一个函数,我将用下面的符号调用:

var someInstance = new SomeType();
DoSomethingOnExpression(()=>someInstance.Value);

该方法应该做那样的事情

void DoSomethingOnExpression<T>(Expression<Func<T>> exp)
{
    MemberExpression mExp = (MemberExpression)exp.body;

    SomeType someTypeInsance = ... //from mExp (1)
    String someTypeValueString = ... //from mExp (2)
    string someIntanceMemberName = (MemberExpression)exp.Body).Member.Name; 

    Assert.Equals(someTypeInstance.Value, someTypeValueString)
}

知道怎么做到这一点?

基本上,我的问题是:我可以从MemberExpression(2)中提取成员值,还可以提取作为此实例所有者的类型实例

0 个答案:

没有答案