首页 新闻 会员 周边 捐助

用于执行JS的类

0
[已解决问题] 解决于 2019-11-13 16:42
using System;
using System.Collections.Generic;
using System.Text;
using System.CodeDom.Compiler;
using System.Reflection;

namespace Msdn5Codes.JS
{
    /// <summary>
    /// 用于执行JS的类
    /// </summary>
    public class ExeJsHelper
    {

        public object GetMainResult(string js, string mainname)
        {
            CodeDomProvider _provider = new Microsoft.JScript.JScriptCodeProvider();
            Type _evaluateType;
            CompilerParameters parameters = new CompilerParameters();
            parameters.GenerateInMemory = true;
            CompilerResults results = _provider.CompileAssemblyFromSource(parameters, js);
            Assembly assembly = results.CompiledAssembly;
            string time = "";

            _evaluateType = assembly.GetType("aa.JScript");
            object[] w = new object[] { "123", time };

            object ww = _evaluateType.InvokeMember("getm32str", BindingFlags.InvokeMethod,
            null, null, w);
            return js;
        }
        ///// <summary>
        ///// 密码加密
        ///// </summary>
        ///// <param name="pass"></param>
        ///// <returns></returns>
        //public string EncodePass(string pass)
        //{
        //    ScriptControlClass sc = new ScriptControlClass();
        //    sc.UseSafeSubset = true;
        //    sc.Language = "JScript";
        //    sc.AddCode(Properties.Resources.QQRsa);  //从资源中读取js内容,也可以写成Js文件神马的.
        //    string str = sc.Run("rsaEncrypt", new object[] { pass }).ToString();
        //    return str;
        //}
    }
}
大da脸的主页 大da脸 | 初学一级 | 园豆:73
提问于:2019-02-22 18:08
< >
分享
最佳答案
0

我也是用这个方法,引用 Interop.MSScriptControl.dll 这个js就可以了

奖励园豆:5
三人乐乐 | 老鸟四级 |园豆:4823 | 2019-03-12 17:51
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册