C#-kutsu JS:lle -järjestelmä löytyy internetistä julkinen merkkijono GetTimeByJs() { Type obj = Type.GetTypeFromProgID("ScriptControl"); jos (obj == null) palauta null; object ScriptControl = Activator.CreateInstance(obj); Obj. InvokeMember("Language", BindingFlags.SetProperty, null, ScriptControl, new object[] { "JavaScript" }); merkkijono js = "funktio time(a, b, msg){ var sum = a + b; return new Date().getTime() + ': ' + msg + ' = ' + sum }"; Obj. InvokeMember("AddCode", BindingFlags.InvokeMethod, null, ScriptControl, new object[] { js }); Return Obj. InvokeMember("Eval(", bindingFlags.InvokeMethod, null, ScriptControl, new object[] { "time(1, 2, '1 + 2')" }). ToString(); }
Testi on kunnossa. time(1, 2, '1 + 2'), missä välitetyt parametrit ovat (numero 1, numero 2, merkkijono 1+2). Mutta kysymys on, new object[] { "time(1, 2, '1 + 2')" }, jos JS-metodin argumentti on tyyppiä byte[], miten se pitäisi kirjoittaa kutsuttaessa?
|