Схема вызова на C# в JS, найденная в Интернете публичная строка GetTimeByJs() { Тип obj = Type.GetTypeFromProgID("ScriptControl"); если (obj == null) возвращает null; object ScriptControl = Activator.CreateInstance(obj); OBJ. InvokeMember("Language", BindingFlags.SetProperty, null, ScriptControl, new object[] { "JavaScript" }); строка js = "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 }); Вернуть OBJ. InvokeMember("Eval", BindingFlags.InvokeMethod, null, ScriptControl, new object[] { "time(1, 2, '1 + 2')" }). ToString(); }
Тест в порядке. time(1, 2, '1 + 2'), где параметры, передаваемые в (число 1, число 2, строка 1+2). Но возникает вопрос: новый объект[] { "time(1, 2, '1 + 2')" }, если аргумент метода JS относится к типу byte[], как его следует записывать при вызове?
|