可以使用Expression<Func<T>>
获取一个对象实例属性的字符串表示形式:
string propertyName = ((MemberExpression) property.Body).Member.Name;
如果我没有(或者不想创建)实例,怎么办?在这种情况下,我该如何获取属性名?
解释
我需要一个对象某个属性名称的字符串表示。
假设有一个实体:
public class Customer
{
public int ID;
public string Name;
}
现在我想将此实体的键表达式传递给其他函数,因此我需要字符串“ID”,但我不想像 SomeOtherFunction("ID")
那样硬编码字符串,而是使用表达式 SomeOtherFunction(ExpressionReader.GetString(() => CustomerInstance.ID))
。为了使其正常工作,我需要提供实体实例。
现在我想做同样的事情,而无需创建实例。
Expression<T>
的实例。 - CodesInChaos