I'm not sure exactly where you need dynamic lambda expressions. In any case, the best way to generate lambda expressions dynamically is to use expression trees. Here are two good tutorials on the topic:
This code generates a lambda expression similar to the one you requested ("x => x.name"):
MemberInfo member = typeof(AClassWithANameProperty).GetProperty("Name"); //Create 'x' parameter expression ParameterExpression xParameter = Expression.Parameter(typeof(object), "x"); //Create body expression Expression body = Expression.MakeMemberAccess(targetParameter, member); //Create and compile lambda var lambda = Expression.Lambda<LateBoundGetMemberValue>( Expression.Convert(body, typeof(string)), targetParameter ); return lambda.Compile();
hope this helps
source share