我应该如何将 lambda 表达式转换为代码(文本)

本文关键字:代码 文本 转换 表达式 lambda 我应该 | 更新日期: 2023-09-27 18:33:55

System.Linq.LambdaExpression转换为可编译代码的"正确"或"最佳"方法是什么?我的应用程序有一种"查询语言",它将搜索表达式转换为 lambda。我正在研究代码生成器,并正在尝试利用此查询语言来生成验证表达式。 Expression.ToString() 使用 ExpressionStringBuilder ,它将某些节点转换为有效 C# 以外的内容,例如 'AndAlso' 和 'OrElse' 而不是运算符 &&|| 。理想情况下,我会覆盖ExpressionStringBuilder,但它是内部的。

我应该如何将 lambda 表达式转换为代码(文本)

可以实现表达式树访问者以将所有节点转换为代码。请参见如何:实现表达式树访问器 (MSDN)。