This tutorial demonstrates how to write and export a C# method that returns a JavaScript array to the JavaScript world.
public class NumberGenerator { Jint.Engine _engine; public NumberGenerator(Jint.Engine engine) { this._engine = engine; } ////// Return an array of number to the JavaScript world /// ///ArrayInstance public Jint.Native.Array.ArrayInstance getNumbers() { var l = new List<object>() {1, 2, 3}; return ToJavaScriptArray(l, this._engine); } private static Jint.Native.Array.ArrayInstance ToJavaScriptArray(List<object> values, Jint.Engine engine) { var jsValues = new List<JsValue>(); foreach(var v in values) jsValues.Add(JsValue.FromObject(engine, v)); return (ArrayInstance)engine.Array.Construct(jsValues.ToArray()); } } class Program { static Jint.Engine _engine; public static void Print(object s) { if (s == null) s = "null"; Console.WriteLine(s.ToString()); } private static Jint.Engine CreateEngine() { var engine = new Engine(); return engine.SetValue("numberGenerator", new NumberGenerator(engine)) .SetValue("print", new Action<object>(Print)); } static void Main(string[] args) { var source = @" var numbers = numberGenerator.getNumbers(); print('numbers:' + JSON.stringify(numbers)); "; CreateEngine().Execute(source); Console.ReadLine(); } }
No comments:
Post a Comment