Egy C# hívás JS-hez rendszer, amely az interneten található public string GetTimeByJs() { Type obj = Type.GetTypeFromProgID("ScriptControl"); ha (obj == null) nullat adnak vissza; object ScriptControl = Activator.CreateInstance(obj); Obj. InvokeMember("Language", BindingFlags.SetProperty, null, ScriptControl, new object[] { "JavaScript" }); js string = "function 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(); }
A teszt rendben van. time(1, 2, '1 + 2'), ahol a beadott paraméterek a következők: (1-es szám, 2-es, 1+2-es láncsor). De felmerül a kérdés, új objektum[] { "time(1, 2, '1 + 2')" }, ha a JS metódus argumentja byte[ típusú[], hogyan kell megírni híváskor?
|