我只是下载Iron JS ,在使用Execute方法完成一些2/3简单程序后,我正在查看ExecuteFile方法。
我有一个Test.js文件,其内容如下
function Add(a,b)
{
var result = a+b;
return result;
}
我想使用Iron JS从C#中调用它。我怎么能这样做?我的代码到目前为止
var o = new IronJS.Hosting.CSharp.Context();
dynamic loadFile = o.ExecuteFile(@"d:\test.js");
var result = loadFile.Add(10, 20);
但是loadfile变量为null(路径正确)..
如何调用JS功能,请帮忙...在谷歌搜索也没有帮助。
由于
答案 0 :(得分:6)
执行的结果将为null,因为您的脚本不会返回任何内容。
但是,您可以在脚本运行后访问“globals”对象以获取该函数。
var o = new IronJS.Hosting.CSharp.Context();
o.ExecuteFile(@"d:\test.js");
dynamic globals = o.Globals;
var result = globals.Add(10, 20);
编辑:该特定版本将与当前的主分支一起使用,并且在即将发布的版本中,但不完全是我们使用NuGet包。与IronJS版本0.2.0.1一起使用的稍微冗长的版本是:
var o = new IronJS.Hosting.CSharp.Context();
o.ExecuteFile(@"d:\test.js");
var add = o.Globals.GetT<FunctionObject>("Add");
var result = add.Call(o.Globals, 10D, 20D).Unbox<double>();