Ett C#-anrop till JS-schema som finns på Internet publik sträng GetTimeByJs() { Type obj = Type.GetTypeFromProgID("ScriptControl"); om (obj == null) returnerar null; object ScriptControl = Activator.CreateInstance(obj); Obj. InvokeMember("Language", BindingFlags.SetProperty, null, ScriptControl, new object[] { "JavaScript" }); sträng js = "funktion tid(a, b, msg){ var sum = a + b; returnera ny Date().getTime() + ': ' + msg + ' = ' + sum }"; Obj. InvokeMember("AddCode", BindingFlags.InvokeMethod, null, ScriptControl, new object[] { js }); Lämna tillbaka Obj. InvokeMember("Eval", BindingFlags.InvokeMethod, null, ScriptControl, new object[] { "time(1, 2, '1 + 2')" }). ToString(); }
Testet är bra. tid(1, 2, '1 + 2'), där parametrarna som skickas in är (nummer 1, nummer 2, sträng 1+2). Men det finns en fråga, nytt objekt[] { "time(1, 2, '1 + 2')" }, om argumentet i JS-metoden är av typen byte[], hur ska det skrivas när man anropar?
|