JScript .Net has been dead a long time - let's not even go there.
Jurassic takes a bit more effort to integrate existing .Net objects into scripts as parameters, but makes perhaps is faster.
JInt is the easiest to use and integrate (takes objects directly as parameters) - and for quick DSL-like scripting using Javascript - wins my vote.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Jint; using Jurassic; using Newtonsoft.Json; namespace RunJSInt { public class Program { static void Main(string[] args) { JintExample(); JurrasicExample(); Console.ReadLine(); } public class Developer { public string Name { get; set; } public string Title { get; set; } } public class DeveloperObjectInstance : Jurassic.Library.ObjectInstance { public DeveloperObjectInstance(ScriptEngine engine) : base(engine) { } public void init(Developer dev) { this["Name"] = dev.Name; this["Title"] = dev.Title; } } private static void JurrasicExample() { var dev = new Developer { Name = "Mike", Title = "Developer" }; var engine = new Jurassic.ScriptEngine(); var obj = new DeveloperObjectInstance(engine); obj.init(dev); engine.Evaluate(@"function test(a) { return 'Jurrasic says, hello ' + a.Name; }"); Console.WriteLine(engine.CallGlobalFunction("test",obj)); } static void JintExample() { var dev = new Developer { Name = "Mike", Title = "Developer" }; JintEngine engine = new JintEngine(); engine.SetParameter("message", dev); var result = engine.Run(@" return 'Jint says, hello ' + message.Name;"); Console.WriteLine(result); } } }
No comments:
Post a Comment