C#执行js动态编译 C#执行js动态编译的方法
人气:0想了解C#执行js动态编译的方法的相关内容吗,在本文为您仔细讲解C#执行js动态编译的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点: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;
}
}
}
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#程序设计有所帮助。
加载全部内容