C#执行js动态编译的方法

论坛 期权论坛 脚本     
niminba   2021-5-23 02:32   202   0

本文实例讲述了C#执行js动态编译的方法。分享给大家供大家参考。具体实现方法如下:

复制代码 代码如下:
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#程序设计有所帮助。

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:1060120
帖子:212021
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP