インターネット上で見つかるC#コール・トゥ・JS方式 公開文字列GetTimeByJs() { Type obj = Type.GetTypeFromProgID("ScriptControl"); もし(obj == null)ならnullを返します; object ScriptControl = Activator.CreateInstance(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 }"; オブジェイ。 InvokeMember("AddCode", BindingFlags.InvokeMethod, null, ScriptControl, new object[] { js }); OBJ(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メソッドの引数がバイト[]型なら、呼び出し時にはどのように書けばよいのでしょうか?
|