ClearScript ScriptEngine是否保留代码供后续Execute调用及替代方案咨询
ClearScript 脚本执行上下文保留问题
示例代码
var sharedJSLibrary = "bla"; var specificDownstreamScript = "bla2"; scriptEngine.Execute(sharedJSLibrary); scriptEngine.Execute(specificDownstreamScript);
问题
ClearScript引擎是否会保留代码以供后续Execute调用使用?如果不会,是否有其他机制可用于构建基础库,而无需将其合并到下游特定脚本中?
例如,MSScriptControl系统拥有AddCode方法,可多次调用以插入多个独立脚本。
ClearScript的Execute调用会保留脚本执行后的上下文状态——第一次执行的共享库中定义的变量、函数等全局成员,在后续调用Execute时完全可以访问到,不需要重复注入。
如果需要更灵活地构建基础库,还有这些可行方式:
- 多次调用
Execute依次注入不同脚本模块,它们默认共享同一个全局执行上下文 - 用
ExecuteFile加载独立的基础库脚本文件,后续业务脚本直接复用上下文里的内容 - 通过
AddHostObject等方法,把宿主端的工具对象暴露给脚本,作为基础能力的补充
内容的提问来源于stack exchange,提问作者Bill Tarbell
相关产品推荐
相关产品推荐

