A строковое представление свойства экземпляра объекта можно взять с помощью 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))
. Для этого мне нужно предоставить экземпляр объекта.
Теперь я хочу сделать тот же без, создав экземпляр.