欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2023-12-14 14:46:28
本文实例讲述了c#执行js动态编译的方法。分享给大家供大家参考。具体实现方法如下: 复制代码 代码如下:using system;  using syste...

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

上一篇:

下一篇: