2010-10-25 6 views
10

Peut-on indiquer que où puis-je obtenir des tutoriels sur IronJS et comment appeler une méthode écrite en IronJS de C# 4.0Informations sur IronJS

Merci

C# 4.0, IronJS

+0

Je serais prêt à parier que IronJS est trop nouveau pour avoir des tutoriels. – Gabe

Répondre

4

Si vous avez un Context, vous pouvez appeler Context.CompileSource() et transmettre ses résultats à Context.InvokeCompiled(), ou simplement appeler Context.Execute() et lui passer le code source. En gros, ceci:

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

Monsieur, 1 question de plus .. Le dernier jour j'essayais d'obtenir la classe IronJS des DLL disponibles. Mais pas capable de le savoir. Pourriez-vous s'il vous plaît laissez-moi savoir dans quelle assemblée il se trouve? –

+0

IronJS est un espace de noms, pas une classe. – Gabe

+0

Oui c'est une faute de frappe .. Je veux dire dans quel dll je vais obtenir ce IronJS.Hosting.Context? –

1

Vous pourriez jeter un oeil à Embedding IronJs. Mais il semble démodé ainsi que la réponse de @Gabe.

Actuellement, il devrait être appelé comme ceci:

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

Il y a maintenant quelques bonnes informations de l'auteur sur le wiki du projet GitHub:

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

Il y a un « premiers pas » article de blog ici:

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

Et j'ai écrit plusieurs articles de blog sur IronJS dont un que stej a lié. Le post stej lié est actuellement actuel, mais il ne couvre que quelques aspects fondamentaux de l'intégration. IronJS a subi une réécriture radicale depuis mes premiers messages, j'ai donc mis des avis sur ces messages en direction de mises à jour plus récentes.

Ce poste couvre spécifiquement la question de l'affiche originale sur la façon d'appeler du code JS de C#:

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

Voici un résumé rapide:

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); 
+0

J'ai mis à jour le tag wiki pour inclure certains des liens et du contenu du readme. –

+0

Avec le dernier IronJS cet extrait de code est déprécié car il n'y a pas de 'IronJS.Box' il y a un 'IronJS.BoxedValue' mais il n'a pas de méthode 'Func.Compile'. Les documents pour IronJS manquent frustrant. – CmdrTallen