Clearscript ScriptEngine 是否保留后续执行调用的代码?

问题描述 投票:0回答:1
var sharedJSLibrary = "bla";
var specificDownstreamScript = "bla2";

scriptEngine.Execute(sharedJSLibrary);
scriptEngine.Execute(specificDownstreamScript);

clearScript 引擎是否保留代码以供后续执行调用使用?如果没有,是否有另一种机制可以用来建立基础库,而不必将其合并到特定的下游脚本中?

例如,MSScriptControl 系统有一个 AddCode 方法,您可以多次调用该方法来插入多个单独的脚本。

javascript c# .net jscript clearscript
1个回答
0
投票

clearScript 引擎是否保留代码以供后续执行调用使用?

是的。每个引擎管理一个脚本执行环境,如果脚本以任何方式更改该环境(例如,通过设置新的全局函数、向对象添加属性等),这些更改将在调用之间保留。

示例:

const string plusLib = "function plus(x, y) { return x + y; }";
const string minusLib = "function minus(x, y) { return x - y; }";
engine.Execute(plusLib);
engine.Execute(minusLib);
Console.WriteLine(engine.Evaluate("plus(1, minus(2, 3))")); // output: "0"
© www.soinside.com 2019 - 2024. All rights reserved.