Een C#-aanroep-naar-JS-schema dat op internet te vinden is publieke string GetTimeByJs() { Type obj = Type.GetTypeFromProgID("ScriptControl"); als (obj == null) nul teruggeeft; object ScriptControl = Activator.CreateInstance(obj); Obj. InvokeMember("Language", BindingFlags.SetProperty, null, ScriptControl, new object[] { "JavaScript" }); string js = "functie time(a, b, msg){ var sum = a + b; return new Date().getTime() + ': ' + msg + ' = ' + sum }"; Obj. InvokeMember("AddCode", BindingFlags.InvokeMethod, null, ScriptControl, new object[] { js }); Geef het doel terug. InvokeMember("Eval", BindingFlags.InvokeMethod, null, ScriptControl, new object[] { "time(1, 2, '1 + 2')" }). ToString(); }
De test is prima. tijd(1, 2, '1 + 2'), waarbij de doorgegeven parameters zijn (nummer 1, nummer 2, reeks 1+2). Maar er is een vraag, nieuw object[] { "time(1, 2, '1 + 2')" }, als het argument van de JS-methode van type byte[] is, hoe moet het dan worden geschreven bij het aanroepen?
|