21
การดึงชื่อคุณสมบัติจากแลมบ์ดานิพจน์
มีวิธีที่ดีกว่าที่จะได้รับชื่อทรัพย์สินเมื่อส่งผ่านผ่านการแสดงออกแลมบ์ดา? นี่คือสิ่งที่ฉันมีอยู่ในปัจจุบัน เช่น. GetSortingInfo<User>(u => u.UserId); มันทำงานโดยการหล่อมันเป็น memberexpression เฉพาะเมื่อคุณสมบัติเป็นสตริง เพราะคุณสมบัติไม่ทั้งหมดเป็นสตริงที่ฉันต้องใช้วัตถุ แต่แล้วมันจะส่งกลับ unaryexpression สำหรับเหล่านั้น public static RouteValueDictionary GetInfo<T>(this HtmlHelper html, Expression<Func<T, object>> action) where T : class { var expression = GetMemberInfo(action); string name = expression.Member.Name; return GetInfo(html, name); } private static MemberExpression GetMemberInfo(Expression method) { LambdaExpression lambda = method as …
513
c#
linq
lambda
expression-trees