C#使用技巧之调用JS脚本方法二
在上篇 C#使用技巧之调用JS脚本方法一 中向大家介绍了C#调用js文件中的js方法,今天给大家介绍另一种调用方法:
1、创建WinForm项目。
2、在From1上增加一个文本框一个按钮。
3、进入Form1.cs编码后台代码。
Form1.cs代码如下:
1 private void button1_Click(object sender, EventArgs e) 2 { 3 4 //输入JS方法参数 5 object[] para = new object[] { this.textBox1.Text.Trim() }; 6 7 string str = GetJsMethd("test", para); 8 9 MessageBox.Show(str); 10 } 11 12 /// <summary> 13 /// 执行JS方法 14 /// </summary> 15 /// <param name="methodName">方法名</param> 16 /// <param name="para">参数</param> 17 /// <returns></returns> 18 private static string GetJsMethd(string methodName, object[] para) 19 { 20 StringBuilder sb = new StringBuilder(); 21 sb.Append("package aa{"); 22 sb.Append(" public class JScript {"); 23 sb.Append(" public static function test(str) {"); 24 sb.Append(" return 'Hello,'+str;"); 25 sb.Append(" }"); 26 sb.Append(" }"); 27 sb.Append("}"); 28 29 CompilerParameters parameters = new CompilerParameters(); 30 31 parameters.GenerateInMemory = true; 32 33 CodeDomProvider _provider = new Microsoft.JScript.JScriptCodeProvider(); 34 35 CompilerResults results = _provider.CompileAssemblyFromSource(parameters, sb.ToString()); 36 37 Assembly assembly = results.CompiledAssembly; 38 39 Type _evaluateType = assembly.GetType("aa.JScript"); 40 41 object obj = _evaluateType.InvokeMember("test", BindingFlags.InvokeMethod, 42 null, null, para); 43 44 return obj.ToString(); 45 }
4、测试效果
注:在后台代码中如果找不到命名空间:Microsoft.JScript.JScriptCodeProvider,请参照下图增加引用
阅读指引: C#使用技巧之调用JS脚本方法一