2014-10-18 3 views
0

employeeType을 가져올 수 있습니까?표현식에서 컨테이너 유형 가져 오기

@Html.MediaFor(x => employee.ProfileImage)?

MediaFor에 대한 서명은 예, Expression<> 데의 장점 중 하나는 당신이 부품의 검사 할 수 있다는 것입니다

MediaFor<TModel, TValue>(this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, TValue>> expression)

+0

여기에 표현식을 사용하는 이유가 있습니까? –

+0

필자는 실제로'Expression'을 제거하고'Func'을 사용하여 가버 릴 수 있다고 생각합니다. – Marcus

+0

내가 받고있는 것은 'MediaFor'가 정확히 무엇인지입니다. 왜 그 종류를 알아야합니까? –

답변

0

입니다. 접근자는 MemberExpression이고, Expression 속성은 회원이 액세스 한 Expression입니다. 그래서의 Type를 검색 :

예 : 물론

public static Type GetRootType<T1,T2>(Expression<Func<T1,T2>> expr) 
{ 
    MemberExpression mex = expr.Body as MemberExpression; 
    return mex.Expression.Type;  
} 

, 이것은 표현의 다양한 유형을 지원하도록 확장 할 수 있으며, 예제는 간단한 MemberExpression을 위해 작동합니다. 간결함을 위해 오류 검사가 생략되었습니다.