• C# 动态执行JS


    有时候需要,在程序中灵活的嵌入自定义的计算逻辑,使用C#加载JS脚本形式可以实现;

    // 添加引用 using Microsoft.JScript;
    string jsStr = "var i=100; i++; i=i*100; var obj = {a:i};";
    
    Stopwatch sw = new Stopwatch();
    sw.Start();
    object ret1 = null;
    try
    {
        ret1 = Eval.JScriptEvaluate(jsStr, VsaEngine.CreateEngine());
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.StackTrace.ToString(), "执行失败", MessageBoxButtons.OK, MessageBoxIcon.Error);
        return;
    }
    
    sw.Stop();
    
    string res = "";
    if (ret1 is ArrayObject)
    {
        // 数组
        ArrayObject arr = (ArrayObject)ret1;
                    
        res = arr[0].ToString();
    }
    else if (ret1 is JSObject)
    {
        // 对象
        JSObject obj = (JSObject)ret1;
    
        res = obj["a"].ToString();
    }
    else
    {
        // 单值
        res = ret1.ToString();
    }
    
    MessageBox.Show(res + " 用时:" + sw.ElapsedMilliseconds.ToString() + "ms");
  • 相关阅读:
    win10安装mysql5.7.20解压版
    mvn snapshot
    git SSH key
    Grails踩坑记
    oracle数据库中使用hibernate生成表不能正确创建表
    有些人
    制定短期计划(3月9-4.29)
    有些话
    Linux中mysql主从复制
    Linux下安装mysql
  • 原文地址:https://www.cnblogs.com/zjfree/p/11927382.html
Copyright © 2020-2023  润新知