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