【问题标题】:ParseLambda method throws an exceptionParseLambda 方法抛出异常
【发布时间】:2020-04-22 08:11:54
【问题描述】:

我正在尝试使用 System.Linq.Dynamic 库中可用的 ParseLmabda 方法。当我执行以下简单示例时,

using Microsoft.Data.SqlClient;
using Microsoft.EntityFrameworkCore;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Dynamic;
using System.Linq.Expressions;

namespace DynamicLINQDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            ParameterExpression x = Expression.Parameter(typeof(int), "x");
            ParameterExpression y = Expression.Parameter(typeof(int), "y");
            LambdaExpression e = System.Linq.Dynamic.DynamicExpression.ParseLambda(new ParameterExpression[] { x, y }, null, "(x + y) * 2");
        }
    }
}

它抛出以下异常。

System.TypeInitializationException: 'The type initializer for 'System.Linq.Dynamic.ExpressionParser' threw an exception.

知道我做错了什么吗?

【问题讨论】:

    标签: c# linq dynamic-linq


    【解决方案1】:

    使用 System.Linq.Dynamic.Core 时,此方法有效:

    ParameterExpression x = Expression.Parameter(typeof(int), "x");
    ParameterExpression y = Expression.Parameter(typeof(int), "y");
    LambdaExpression e = DynamicExpressionParser.ParseLambda(new [] { x, y }, null, "(x + y) * 2");
    
    var c = e.Compile();
    var result = c.DynamicInvoke(1, 2);
    Console.WriteLine(result);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-10-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-17
      • 1970-01-01
      相关资源
      最近更新 更多