11

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

谢谢

C#4.0,IronJS

4

4 回答 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 链接的一篇。post stej linked 实际上是最新的,但它只涵盖了嵌入的一些基本方面。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 );
于 2011-05-04T00:03:03.987 回答
7

查看https://github.com/fholm/IronJS/wiki以获取有关使用 IronJS 的指南

于 2011-05-25T12:44:31.987 回答
5

如果您有Context,您可以调用Context.CompileSource()并将其结果传递给Context.InvokeCompiled(),或者只是调用Context.Execute()并将源代码传递给它。粗略地说,这是:

IronJS.Hosting.Context ijsCtx;
ijsCtx = IronJS.Hosting.Context.Create();
ijsCtx.Execute("(function(){return 42;})()");
于 2010-10-25T06:17:34.580 回答
1

你可以看看Embedding IronJs。但它看起来和@Gabe 的答案一样过时了。

目前它应该这样调用:

var o = new IronJS.Hosting.Csharp.Context
o.Execute('var a = 10; a');
于 2011-04-20T07:28:23.533 回答