如何使用IronJS从C#调用javascript文件中编写的函数

如何使用IronJS从C#调用javascript文件中编写的函数,c#,ironjs,C#,Ironjs,我只是下载了,在使用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.Execut

我只是下载了,在使用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函数,请帮助。。。在谷歌搜索也没有任何帮助


谢谢

执行的结果将为空,因为您的脚本不会返回任何内容

但是,您可以在脚本运行后访问“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>();
var o=new IronJS.Hosting.CSharp.Context();
o、 ExecuteFile(@“d:\test.js”);
var add=o.Globals.GetT(“add”);
var result=add.Call(o.Globals,10D,20D).Unbox();

我已经修改了我的答案,以便使用NuGet软件包。我之前的回答是基于我们目前的主分支。我忘了动态的东西还没有出现在NuGet中。你的编辑完全改变了问题,也使问题变得毫无价值。我已回滚到原始版本。如果你想回到你的版本,这是你的选择,但我,作为其中之一,将投票结束这个问题,因为“不是一个真正的问题”。是的,这是错误的。。先生,1个问题(我不知道这是否相关),什么时候会正式发布?Fredrik Holmstrom将是提问的人,但是你可以把NuGuy上的版本看作是“支持”的,因为我们试图在解决问题和发布更新方面非常活跃。