gpt4 book ai didi

c# - 不支持异常 : The invoked member is not supported in a dynamic module in C# Unity 5

转载 作者:行者123 更新时间:2023-11-30 14:47:35 31 4
gpt4 key购买 nike

这是我的毕业设计。这个游戏的想法是通过提供一些有趣的任务来帮助学生练习编程,这些任务需要 C# 代码解决方案(例如 codingame.com),当用户产生正确的输出时,结果会在 Unity 场景中可视化。

我正在使用 C# 编译器插件在 Unity 5 运行时编译用户代码。一切正常(每个场景单独开始在编辑器中播放场景并停止它)但是当我从场景前进到下一个场景时,当我在运行时构建用户的 C# 代码时,这个错误就会出现(NotSupportedException:被调用的成员在动态模块中不支持)(错误总是在第二个场景或下一个场景中出现)。

错误:

NotSupportedException: The invoked member is not supported in a dynamic module

Error

产生错误的行:

this.assemblyReferences = domain.GetAssemblies().Select(a => a.Location).ToArray();

assemblyRefrences 是一个字符串数组:string[] assemblyReferences;

这一行在其构造函数中名为 ScriptBundleLoader 的脚本中

最佳答案

发生错误是因为您试图获取内存中程序集(您即时创建的程序集)的位置,而这些程序集不在任何地方。

如果你想避免这个错误尝试这样的事情:

this.assemblyReferences = domain.GetAssemblies().Select(a => 
{
try{ return a.Location; }catch{ return null; }

}).Where(s => s != null).ToArray();

编辑:

正如 Jon Skeet 指出的那样,可以使用“IsDynamic”而不是捕获异常:

this.assemblyReferences = domain.GetAssemblies()
.Where(a => !a.IsDynamic)
.Select(a => a.Location)
.ToArray();

关于c# - 不支持异常 : The invoked member is not supported in a dynamic module in C# Unity 5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44446720/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com