简体   繁体   English

如何转换Func <T,object> 到PropertyInfo

[英]How can i convert Func<T,object> to PropertyInfo

I need property name to be extracted form Func please help me if its possible. 我需要从Func中提取属性名称,如果可以的话,请帮助我。 Thanks. 谢谢。

public void Converter<T>(Func<T,Ojbect> F)
{

}
public class Tester
{
 void main()
  {
   String Name = Converter<User>(m=>m.Id);
  //Name should be equal to "Id"
  }
}

What you need is: 您需要的是:

public static string GetPropertyName<T>(Expression<Func<T>> property)
{
    var memberExpress = property.Body as MemberExpression;    
    return memberExpress.Member.Name;
}

Which you can then call using: 然后您可以使用以下方法致电:

var user = new User();
string name = GetPropertyName(() => user.Name);

Or even: 甚至:

public static string GetPropertyName<T, TValue>(Expression<Func<T, TValue>> property)
{
    var memberExpress = property.Body as MemberExpression;    
    return memberExpress.Member.Name;
}

Which you can call using: 您可以使用以下方式致电:

string name = GetPropertyName<User, string>(u => u.Id);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM