C#履行js靜態編譯的辦法。本站提示廣大學習愛好者:(C#履行js靜態編譯的辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是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#法式設計有所贊助。