我正在执行自定义JS函数,并将c#对象作为该函数的参数传递。不幸的是,有可能在JS内部创建副作用。
someArg.Value = 42;
也将更改c#对象的值。如何告诉jint限制传递的对象的作用域?该脚本应该只返回一个布尔值,并且不能对原始对象进行任何更改。
我尝试了一些引擎选项,但是找不到有关此主题的任何详细文档。这是我当前调用脚本的方式:
var result = new Engine()
.Execute(function)
.Invoke("predicate", extendedReport, reportQuestion, question, answerArray, answerIndex)
.AsBoolean();