я использую следующий метод для создания объекта SelectListItem из любого другого объекта:Как получить полное имя свойства от лямбда
public static SelectListItem ToSelectListItem<T, TResult, TResult2>(T obj, Expression<Func<T, TResult>> value, Expression<Func<T, TResult2>> text)
{
string strValue = String.Empty;
string strText = String.Empty;
if (value != null)
strValue = (value.Body as MemberExpression).Member.Name;
if (text != null)
strText = (text.Body as MemberExpression).Member.Name;
...
}
Я использую этот метод, как это:
SelectListItem item = ToSelectListItem(obj, x => x.ID, x => x.Name);
И он отлично работает. Однако, когда я определяю свойство из соответствующего объекта все, что я получаю имя свойства
SelectListItem item = ToSelectListItem(obj, x => x.ID, x => x.Profile.Name);
имя свойства я могу получить от «х => x.Profile.Name» только ' Имя », и я действительно хотел получить« Profile.Name ».
Любые предложения будут оценены.
Возможный дубликат [C#: Получение имен свойств в цепочке из выражения лямбда] (http://stackoverflow.com/questions/1667408/c-getting-names-of-properties- in-a-chain-from-lambda-expression) – nawfal