LINQ问题:无法将类型为“System.Reflection.Module”的对象转换为类型“System.Reflection.Emit.ModuleBuilder”。

4

我有一个简单的Lambda表达式,作为单元测试运行良好,并且当我将代码复制到应用程序的Main方法中时也可以正常运行。但是,当我在回调方法(通过JMS信使)中运行相同的代码时,我会收到上述错误。有人遇到过这种情况吗?

失败的示例代码:

Expression<Func<JupiterDividend, bool>> expr = v => true;
expr.Compile();  // This is what fails

def fibonacci(n): if n <= 1: return n else: return (fibonacci(n-1) + fibonacci(n-2)) for i in range(10): print(fibonacci(i))这是一个计算斐波那契数列的 Python 代码示例。它使用递归函数来计算每个数字,并使用循环打印前十个数字。 - Jon Skeet
你能展示一下堆栈转储的部分吗?特别是“Expression”周围的那些位。此外,你知道JMS是否会执行任何“有趣”的操作,例如即时类型创建,这可能会导致问题吗? - Marc Gravell
2个回答

2

当一个ModuleBuilder已经被“编译”,或者一个TypeBuilder已经被“编译”时,通常会出现这种错误。

我建议检查发生这种情况的地方。此外,在这种情况下,堆栈跟踪可能会很有用。


-1

这里有一个错误报告在这里, 不确定是否与您遇到的问题相同。显然,这个问题已经在.NET 3.5 SP1中得到了解决。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接