Строковое представление свойства экземпляра объекта может быть взято с помощью Expression
:
string propertyName = ((MemberExpression) property.Body).Member.Name;
Но что если у меня нет (не хочу создавать) экземпляр? Как мне получить имя свойства в этом случае?
Объяснение
Мне нужно строковое представление имени свойства некоторого объекта.
Допустим, существует сущность
public class Customer
{
public int ID;
public string Name;
}
Теперь я хочу передать ключевое выражение этой сущности какой-либо другой функции, поэтому мне нужна строка «ID», но я не хочу жестко кодировать строку вроде SomeOtherFunction ("ID")
, вместо этого я использую выражение SomeOtherFunction (ExpressionReader.GetString (() => CustomerInstance.ID))
. Чтобы это сработало, мне нужно предоставить экземпляр объекта.
Теперь я хочу сделать то же самое без создания экземпляра.