使用CSScript.Evaluator.Reset()时,这会重置当前正在使用同一脚本或内部版本的其他任何人吗?
问我问题的另一种方式。
脚本= CSScript.Evaluator.LoadCode(scriptString);
如果另一个用户通过并调用了相同的代码,但是发生了错误。
原始编译文件仍然是安全的吗?
另外CSScript.Evaluator.AutoResetEvaluatorOnError = true,这似乎不起作用。
在代码中导致错误后,请修复它。在重置我的应用程序或使用Reset()之前,编译将无法进行。
使用Reset可以正常工作,但这就是我最初提出问题的原因。
我正在使用CSScript.Evaluator.LoadCode并查看CSScript.Evaluator.LoadMethod,但是遇到了相同的问题。
这些不是很大的脚本,但是可以成批运行或循环运行。
不反对唯一的命名,因为无论如何我将为每次运行都构建。
但是我也不确定缓存是否正常工作。
启用CSScript.CacheEnabled时,缓存文件夹的位置在哪里?
最佳答案
是的,就像您持有对已编译对象的引用时那样。即使您破坏了编译器,我也很好。
此设置会触发如此冷的SoftReset,这与Reset不同,仅在于重新引用程序集并重新创建CompilerSettings对象。最初实现SoftReset的时间足以完全清除Mono.Evaluator。我将需要检查可能不再是这种情况了。我会让你知道结果。
缓存不包括Mono Evaluator,因为所有程序集都在内存中并且无法缓存。
适用于Mono编译器的通过CSScript.Evaluator。*访问的所有内容,以及通过CSScript。*访问的所有内容均为CodeDOM编译器,它确实实现了缓存机制。
关于caching - 如何处理并发Web用户的重置CS-Script,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28113432/