将 System.Linq.LambdaExpression
转换为可编译代码的“正确”或“最佳”方法是什么?我的应用程序有一种“查询语言”,可以将搜索表达式转换为 lambda。我正在开发一个代码生成器,我正在尝试利用这种查询语言来生成验证表达式。 Expression.ToString()
使用 ExpressionStringBuilder
,它将一些节点转换为有效 C# 以外的东西,例如 'AndAlso' 和 'OrElse' 而不是运算符 &&
和 ||
。理想情况下,我会覆盖 ExpressionStringBuilder
,但它是内部的。
最佳答案
您可以实现一个表达式树访问器,将所有节点转换为代码。参见 How to: Implement an Expression Tree Visitor (MSDN)。
关于c# - 我应该如何将 lambda 表达式转换为代码(文本)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27407511/