在 c# 中将表达式> 转换为字符串,反之亦然
本文关键字:转换 字符串 反之亦然 bool 表达式 func | 更新日期: 2023-09-27 18:35:20
我想将Expression<Func<Loan, bool>>
转换为字符串,反之亦然。 我能做到吗? 如何实现ConvertStringToExpression
方法?
internal class Program
{
public class Loan
{
public bool IsActive { get; set; }
}
private static void Main(string[] args)
{
Expression<Func<Loan, bool>> expression = l => !l.IsActive;
var expStr = ConvertExpressionToString(expression);
var exp = ConvertStringToExpression(expStr);
}
public static string ConvertExpressionToString(Expression<Func<Loan, bool>> expression)
{
//return ???
throw new NotImplementedException();
}
public static string ConvertStringToExpression(string expression)
{
//return ???
throw new NotImplementedException();
}
}
你可以使用DynamicLinq库,就像很久以前ScottGu的博客中详细介绍的那样。该库有一个类ExpressionParser
,其中包含解析框架的所有组件,用于解析字符串表达式并将其转换回Expression
。
这是用法之一:
public static Expression Parse(Type resultType, string expression, params object[] values)
{
ExpressionParser parser = new ExpressionParser(null, expression, values);
return parser.Parse(resultType);
}
我在这里为单个文件库创建了一个要点。但您也可以在此处下载完整内容。