【发布时间】:2017-07-13 20:55:21
【问题描述】:
以下代码适用于常规类型:
public static string GetPropertyName(this Expression<Func<object>> property)
{
MemberExpression member = property.Body as MemberExpression;
PropertyInfo propInfo = member.Member as PropertyInfo;
return propInfo.Name;
}
GetPropertyName(() => obj.MyProperty); //Returns "MyProperty"
但是,如果您将匿名类型的属性传递给它,它会引发空引用异常,因为表达式主体是 UnaryExpression 而不是 MemberExpression。
我怎样才能使这个函数对匿名类型正常工作?
【问题讨论】:
标签: c# .net lambda expression