System.Linq.Dynamic.Core库:将表达式字符串转换为委托并执行

DynamicExpressionParser.ParseLambda接收一个字符串类型的表达式,将其转换为delegate

string dynamicExpression = "new string[] {\"0001\", \"0002\", \"0003\"}.Contains(m)";
  var lambda = DynamicExpressionParser.ParseLambda(
      new[] { Expression.Parameter(typeof(string), "m") }, // 定义参数 m
      typeof(bool), // 返回值类型
      dynamicExpression
  );

获得到委托后,编译、强转后调用

var foo = (Func<string, bool>)lambda.Compile();
foo("0001"); // true
posted @ 2025-03-18 14:32  南山有榛  阅读(133)  评论(0)    收藏  举报