有关IronJS的信息

时间:2010-10-25 05:47:32

标签: c#-4.0 dynamic-language-runtime ironjs

任何人都可以指出我在哪里可以获得有关IronJS的一些教程以及如何从C#4.0调用IronJS编写的方法

由于

C#4.0,IronJS

4 个答案:

答案 0 :(得分:9)

现在GitHub项目维基上的作者提供了一些很好的信息:

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

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

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

我在IronJS上写了几篇博客文章,其中包括stej链接的博文。 post 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 );

答案 1 :(得分:6)

结帐https://github.com/fholm/IronJS/wiki了解有关使用IronJS的指南

答案 2 :(得分:4)

如果您有Context,则可以致电Context.CompileSource()并将结果传递给Context.InvokeCompiled(),或者只需致电Context.Execute()并将其传递给源代码。粗略地说,这个:

IronJS.Hosting.Context ijsCtx;
ijsCtx = IronJS.Hosting.Context.Create();
ijsCtx.Execute("(function(){return 42;})()");

答案 3 :(得分:1)

您可以查看Embedding IronJs。但看起来过时以及@Gabe的回答。

目前应该这样调用:

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