作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是我的毕业设计。这个游戏的想法是通过提供一些有趣的任务来帮助学生练习编程,这些任务需要 C# 代码解决方案(例如 codingame.com),当用户产生正确的输出时,结果会在 Unity 场景中可视化。
我正在使用 C# 编译器插件在 Unity 5 运行时编译用户代码。一切正常(每个场景单独开始在编辑器中播放场景并停止它)但是当我从场景前进到下一个场景时,当我在运行时构建用户的 C# 代码时,这个错误就会出现(NotSupportedException:被调用的成员在动态模块中不支持)(错误总是在第二个场景或下一个场景中出现)。
错误:
NotSupportedException: The invoked member is not supported in a dynamic module
产生错误的行:
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/
我是一名优秀的程序员,十分优秀!