尝试构建动态 Lambda 表达式以根据用户提供的属性名称进行选择,但收到错误“为 lambda 声明提供的参数数量不正确”。我试图做到这一点:() => myObj.propName
这是我的代码的最新版本:
var parameter = Expression.Parameter(typeof(myObjType), propName);
MemberExpression exp = Expression.PropertyOrField(parameter, propName);
var func = Expression.Lambda<Func<string>>(exp, parameter).Compile();
错误发生在最后一行。我在 SO 和其他地方看到了一些类似的事情,这些事情让我走到了这一步,但无法弄清楚我做错了什么。目前,我尝试使用的所有属性都是字符串。
谢谢。