首页 > 编程 > C# > 正文

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

2019-10-29 21:43:21
字体:
来源:转载
供稿:网友
这篇文章主要介绍了C#执行js动态编译的方法,是涉及动态编译脚本非常实用的技巧,需要的朋友可以参考下
 

本文实例讲述了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#程序设计有所帮助。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表