如何将 Func 转换为 PropertyInfo
本文关键字:object 转换 PropertyInfo Func | 更新日期: 2023-09-27 18:31:30
我需要从 Func 中提取属性名称,如果可能的话,请帮助我。谢谢。
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"
}
}
你需要的是:
public static string GetPropertyName<T>(Expression<Func<T>> property)
{
var memberExpress = property.Body as MemberExpression;
return memberExpress.Member.Name;
}
然后您可以使用以下方法调用:
var user = new User();
string name = GetPropertyName(() => user.Name);
甚至:
public static string GetPropertyName<T, TValue>(Expression<Func<T, TValue>> property)
{
var memberExpress = property.Body as MemberExpression;
return memberExpress.Member.Name;
}
您可以使用以下方法调用:
string name = GetPropertyName<User, string>(u => u.Id);