在此示例中是否可以获得Type
的{{1}}?
employee
?
@Html.MediaFor(x => employee.ProfileImage)
的签名是
MediaFor
答案 0 :(得分:0)
是的,拥有Expression<>
的好处之一就是您可以检查它的部分。您的访问者是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
。为简洁起见,省略了错误检查。