Схема C# call to JS, знайдена в Інтернеті публічний рядок GetTimeByJs() { Тип obj = Type.GetTypeFromProgID("ScriptControl"); якщо (obj == null) поверне null; object ScriptControl = Activator.CreateInstance(obj); OBJ. InvokeMember("Мова", BindingFlags.SetProperty, null, ScriptControl, new object[] { "JavaScript" }); рядок js = "function time(a, b, msg){ var sum = a + b; повернути новий 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). Але є питання: new object[] { "time(1, 2, '1 + 2')" }, якщо аргумент методу JS має тип byte[], як його слід записувати при виклику?
|