IronJS相关信息

11

请问在哪里可以找到关于IronJS的教程以及如何从C# 4.0中调用IronJS编写的方法?

谢谢

C# 4.0,IronJS


我敢打赌IronJS还太新了,没有相关的教程。 - Gabe
4个回答

10

GitHub项目wiki上现在有一些作者提供的好信息:

https://github.com/fholm/IronJS/wiki

这里有一篇“第一步”博客文章:

http://blog.dotsmart.net/2011/04/20/first-steps-with-ironjs-0-2/

我写了几篇关于IronJS的博客文章,其中包括stej链接的一篇。stej链接的文章实际上是当前的版本,但它只涵盖了嵌入的一些基本概念。自从我的第一篇文章以来,IronJS已经经历了彻底的重写,因此我在那些文章中放置了指向更新版本的通知。

这篇文章特别介绍了原帖作者如何从C#调用JS代码的问题:

http://newcome.wordpress.com/2011/03/13/embedding-ironjs-part-ii/

以下是一个简要概述:

IronJS.Hosting.Context ctx = IronJS.Hosting.Context.Create();
ctx.Execute("hello = function() { return 'hello from IronJS' }");
IronJS.Box obj = ctx.GetGlobal("hello");
Func<IronJS.Function,IronJS.Object,IronJS.Box> fun =
    obj.Func.Compiler.compileAs<Func<IronJS.Function,IronJS.Object,IronJS.Box>>(obj.Func);

IronJS.Box res = fun.Invoke(obj.Func, obj.Func.Env.Globals);
Console.WriteLine( res.String );

我更新了标签维基,包括自自述文件中的一些链接和内容。 - Paul Tyng
随着最新版本的IronJS,这段代码已经过时了,因为没有'IronJS.Box',但有一个'IronJS.BoxedValue',但它没有'Func.Compile'方法。IronJS的文档令人沮丧地缺乏。 - CmdrTallen

7

5
如果您有一个Context,您可以调用Context.CompileSource()并将其结果传递给Context.InvokeCompiled(),或者只需调用Context.Execute()并将源代码传递给它。大致上是这样的:
IronJS.Hosting.Context ijsCtx;
ijsCtx = IronJS.Hosting.Context.Create();
ijsCtx.Execute("(function(){return 42;})()");

先生,还有一个问题。昨天我试图从可用的dll中获取IronJS类,但是找不到它。您能告诉我它在哪个程序集中吗? - user372724
IronJS是一个命名空间,而不是一个类。 - Gabe
是的,这是一个打字错误。我的意思是在哪个dll中可以找到IronJS.Hosting.Context? - user372724
在构建项目后,IronJS.dll将位于“bin”目录中。 - Gabe

1
你可以看一下嵌入IronJs。但它看起来已过时,就像@Gabe的回答一样。

目前应该这样调用:

var o = new IronJS.Hosting.Csharp.Context
o.Execute('var a = 10; a');

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接