表达式树深度限制

本文关键字:深度 表达式 | 更新日期: 2023-09-27 18:35:17

我在尝试在 Expression<MyType,>>它的深度约为 400。较低的值不会引起任何问题。我找不到任何关于这种限制的信息。谁能澄清一下?我可以提高此限制吗?

更新:对不起,忘了提,我得到了StackOverflowException:

System.Core 中发生了类型为"System.StackOverflowException"的未处理异常.dll{无法计算表达式,因为当前线程处于堆栈溢出状态。

表达式树深度限制

您合法地遇到了堆栈大小的限制(尽管我质疑 400+ 项目 lambda 的智慧)。 绕过这一点的最简单方法是创建一个新线程,专门用于使用更大的堆栈执行此编译,使用将堆栈大小作为参数的线程构造函数:http://msdn.microsoft.com/en-us/library/ms149581.aspx

在该线程中调用 compile 并根据需要增加堆栈大小参数。 我相信它以字节为单位,这将使默认值约为1048576,因此请从那里开始并根据需要提高它。