C#执行js动态编译的方法
本文实例讲述了C#执行js动态编译的方法。分享给大家供大家参考。具体实现方法如下:
usingSystem;
usingSystem.CodeDom.Compiler;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Reflection;
usingSystem.Text;
usingSystem.Threading.Tasks;
namespacewebpro
{
publicclassJScripta
{
privatestaticreadonlyCodeDomProvider_provider=newMicrosoft.JScript.JScriptCodeProvider();
privatestaticType_evaluateType;
privateconststringscriptStr=@"packagefhs
{
publicclassMyJs
{
publicstaticfunctiontest1(paramr1)
{
varretString = paramr1+'是无敌的!';
returnretString;
}
}
}";
publicstaticobjectJScriptRun(stringjsMethodName,object[]testParams)
{
//编译的参数
CompilerParametersparameters=newCompilerParameters();
parameters.GenerateInMemory=true;
CompilerResultsresults=_provider.CompileAssemblyFromSource(parameters,scriptStr);
Assemblyassembly=results.CompiledAssembly;
//动态编译脚本中的内容
_evaluateType=assembly.GetType("fhs.MyJs");
//执行指定的方法并传参数
objectretObj=_evaluateType.InvokeMember(jsMethodName,BindingFlags.InvokeMethod,
null,null,testParams);
returnretObj;
}
}
}
希望本文所述对大家的C#程序设计有所帮助。