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

浙公网安备 33010602011771号