標籤:blog io ar os sp on 2014 log cti
using System;using System.CodeDom.Compiler;using System.Collections.Generic;using System.Linq;using System.Reflection;using System.Text;using System.Threading.Tasks;namespace webpro{ public class JScripta { private static readonly CodeDomProvider _provider = new Microsoft.JScript.JScriptCodeProvider(); private static Type _evaluateType; private const string scriptStr = @"package fhs { public class MyJs { public static function test1(paramr1) { var retString = paramr1+ '是無敵的!'; return retString; } } }"; public static object JScriptRun(string jsMethodName,object[] testParams) { //編譯的參數 CompilerParameters parameters = new CompilerParameters(); parameters.GenerateInMemory = true; CompilerResults results = _provider.CompileAssemblyFromSource(parameters, scriptStr); Assembly assembly = results.CompiledAssembly; //動態編譯指令碼中的內容 _evaluateType = assembly.GetType("fhs.MyJs"); //執行指定的方法並傳參數 object retObj = _evaluateType.InvokeMember(jsMethodName, BindingFlags.InvokeMethod, null, null, testParams); return retObj; } }}
c# 執行js 動態編譯