Um esquema de chamada C# para JS encontrado na Internet string pública GetTimeByJs() { Tipo obj = Tipo.ObTipoFromProgID("ScriptControl"); se (obj == null) retorne null; objeto: ScriptControl: = Activator.CreateInstance(obj); Obj. InvokeMember("Language", BindingFlags.SetProperty, null, ScriptControl, novo objeto[] { "JavaScript" }); string js = "função time(a, b, msg){ var sum = a + b; return new Date().getTime() + ': ' + msg + ' = ' + soma }"; Obj. InvokeMember("AddCode", BindingFlags.InvokeMethod, null, ScriptControl, novo objeto[] { js }); Retorne objetos. InvokeMember("Eval", BindingFlags.InvokeMethod, null, ScriptControl, new object[] { "time(1, 2, '1 + 2')" }). ToString(); }
O teste está bom. tempo (1, 2, '1 + 2'), onde os parâmetros passados são (número 1, número 2, string 1+2). Mas há uma questão, novo objeto[] { "time(1, 2, '1 + 2')" }, se o argumento do método JS for do tipo byte[], como ele deve ser escrito ao chamar?
|