Ein C#-Aufruf-zu-JS-Schema, das im Internet zu finden ist öffentliche Zeichenkette GetTimeByJs() { Type obj = Type.GetTypeFromProgID ("ScriptControl"); wenn (obj == null) null zurückgibt; object ScriptControl = Activator.CreateInstance(obj); obj. InvokeMember("Language", BindingFlags.SetProperty, null, ScriptControl, new object[] { "JavaScript" }); String 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 }); Return Obj. InvokeMember("Eval", BindingFlags.InvokeMethod, null, ScriptControl, new object[] { "time(1, 2, '1 + 2')" }). ToString(); }
Der Test ist in Ordnung. Zeit(1, 2, '1 + 2'), wobei die übermittelten Parameter (Nummer 1, Zahl 2, String 1+2) sind. Aber es stellt sich eine Frage, neues Objekt[] { "time(1, 2, '1 + 2')" }, wenn das Argument der JS-Methode vom Typ byte[ ist], wie sollte es beim Aufruf geschrieben werden?
|