You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET 8升级后ParseLambda枚举类型找不到异常解决

.NET 8升级后DynamicExpressionParser无法识别自定义枚举的解决办法

问题情况

项目从.NET 6升级到.NET 8后,调用DynamicExpressionParser.ParseLambda方法时出现异常。

调用代码如下:

var e = DynamicExpressionParser.ParseLambda(new[] { q, t, s, d, st }, null, exp);

其中exp字符串包含这段Linq逻辑:

someCollection.Count(p => p.SomeProperty == MyNamespace.MyEnum.Value1)

抛出的异常

Type 'MyNamespace.MyEnum' not found (at index 504)

原因推测

升级过程中System.Linq.Dynamic.Core库版本从适配.NET 6的1.4.5.0更新到了适配.NET 8的1.6.0.1,应该是库的类型解析规则变更或新增了安全限制,导致自定义枚举无法被自动识别。

解决方法

给对应的枚举类型添加[DynamicLinqType]属性即可:

using System.Linq.Dynamic.Core;

namespace MyNamespace
{
    [DynamicLinqType]
    public enum MyEnum
    {
        Value1,
        // 其他枚举成员
    }
}

内容的提问来源于stack exchange,提问作者mkedwards

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 03:57:02