O schemă apel C# către JS găsită pe Internet șirul public GetTimeByJs() { Type obj = Type.GetTypeFromProgID("ScriptControl"); dacă (obj == null) returnează null; obiectul ScriptControl = Activator.CreateInstance(obj); Obj. InvokeMember("Language", BindingFlags.SetProperty, null, ScriptControl, new object[] { "JavaScript" }); șirul js = "funcția time(a, b, msg){ var sum = a + b; return new Date().getTime() + ': ' + msg + ' = ' + sumă }"; Obj. InvokeMember("AddCode", BindingFlags.InvokeMethod, null, ScriptControl, new object[] { js }); returnează obiectul. InvokeMember("Eval", BindingFlags.InvokeMethod, null, ScriptControl, new object[] { "time(1, 2, '1 + 2')" }). ToString(); }
Testul este în regulă. timp (1, 2, '1 + 2'), unde parametrii treși sunt (numărul 1, numărul 2, șirul 1+2). Dar există o întrebare, new object[] { "time(1, 2, '1 + 2')" }, dacă argumentul metodei JS este de tip byte[], cum ar trebui scris la apelare?
|