Информация о IronJS - PullRequest
       44

Информация о IronJS

10 голосов
/ 25 октября 2010

Может ли кто-нибудь указать, где я могу получить некоторые учебники по IronJS и как вызвать метод, написанный на IronJS из C # 4.0

Спасибо

C # 4.0, IronJS

Ответы [ 4 ]

9 голосов
/ 04 мая 2011

Теперь есть хорошая информация от автора по вики-проекту GitHub:

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

Здесь есть пост в блоге «Первые шаги»:

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

И я написал несколько постов в блоге на IronJS, в том числе тот, на который ссылался stej.Пост-stej связанный на самом деле актуален, но он охватывает только некоторые основные аспекты встраивания.IronJS претерпел радикальную переписку со времени моих первых постов, поэтому я разместил уведомления на этих постах, указывающих на более новые обновления.

В этом посте конкретно рассматривается вопрос оригинального автора о том, как вызывать код JS из C #:

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 );
6 голосов
/ 25 мая 2011

Оформление заказа https://github.com/fholm/IronJS/wiki для получения инструкций по использованию IronJS

4 голосов
/ 25 октября 2010

Если у вас есть Context, вы можете позвонить Context.CompileSource() и передать его результаты в Context.InvokeCompiled(), или просто позвонить Context.Execute() и передать его исходный код.Грубо говоря, это:

IronJS.Hosting.Context ijsCtx;
ijsCtx = IronJS.Hosting.Context.Create();
ijsCtx.Execute("(function(){return 42;})()");
1 голос
/ 20 апреля 2011

Вы можете взглянуть на Встраивание IronJs .Но он выглядит устаревшим, как и ответ @ Gabe.

В настоящее время он должен называться так:

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