有时候需要,在程序中灵活的嵌入自定义的计算逻辑,使用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[].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");

最新文章

  1. 关于计算机的ID和用户ID之间的关系
  2. ADO。Net(二)——防止SQL注入攻击
  3. SuperSocket架构设计示意图【转】
  4. [改善Java代码]动态加载不适合数组
  5. VB.NET中LINQ TO List泛型查询语句(分组,聚合函数)
  6. Webbrowser判断页面加载完成
  7. URL中含有+号,出现错误“请求筛选模块被配置为拒绝包含双重转义序列的请求”的解决方法
  8. HTML重要标签及属性详解
  9. Python3 从入门到出门
  10. 【firefox】关闭firefox缓存
  11. Android的RadioButton和checkBox的用法-android学习之旅(十九)
  12. 从零开始学安全(三十九)●FCK编辑器解析漏洞
  13. springBoot的数据库操作
  14. CentOS----kdump failed
  15. 程序员编程艺术:面试和算法心得-(转 July)
  16. Dockerfile指令学习 (转)
  17. 如何一键式搭建微信小程序
  18. json多态序列化
  19. Send or receive files via Xshell
  20. Linux 命令 "cp" 代码实现简介

热门文章

  1. python爬取站长之家植物图片
  2. Centos系统的升级
  3. Reset.css和Normalize.css样式表初始化相关
  4. 第二篇 -- C#中对XML操作
  5. fastjson =< 1.2.47 反序列化漏洞复现
  6. Spring Boot 中的事务管理
  7. 将表格转化为Latex代码的在线工具
  8. ajax jsonp函数调用
  9. 学习:窗口创建以及消息处理basic.c
  10. &和&& 每天学一点linux