当前位置: 首页 > 软件库 > 程序开发 > 常用工具包 >

ClearScript

.NET 脚本工具
授权协议 Ms-PL
开发语言 C#
所属分类 程序开发、 常用工具包
软件类型 开源软件
地区 不详
投 递 者 拓拔耀
操作系统 Windows
开源组织
适用人群 未知
 软件概览

ClearScript 可以帮助开发者添加脚本到 .NET 应用,当前支持 JavaScript (V8 和 JScript) 和 VBScript。

示例

using System;
using Microsoft.ClearScript;
using Microsoft.ClearScript.V8;
// create a script engine
using (var engine = new V8ScriptEngine())
{
    // expose a host type
    engine.AddHostType("Console", typeof(Console));
    engine.Execute("Console.WriteLine('{0} is an interesting number.', Math.PI)");
    // expose a host object
    engine.AddHostObject("random", new Random());
    engine.Execute("Console.WriteLine(random.NextDouble())");
    // expose entire assemblies
    engine.AddHostObject("lib", new HostTypeCollection("mscorlib", "System.Core"));
    engine.Execute("Console.WriteLine(lib.System.DateTime.Now)");
    // create a host object from script
    engine.Execute(@"
        birthday = new lib.System.DateTime(2007, 5, 22);
        Console.WriteLine(birthday.ToLongDateString());
    ");
    // use a generic class from script
    engine.Execute(@"
        Dictionary = lib.System.Collections.Generic.Dictionary;
        dict = new Dictionary(lib.System.String, lib.System.Int32);
        dict.Add('foo', 123);
    ");
    // call a host method with an output parameter
    engine.AddHostObject("host", new HostFunctions());
    engine.Execute(@"
        intVar = host.newVar(lib.System.Int32);
        found = dict.TryGetValue('foo', intVar.out);
        Console.WriteLine('{0} {1}', found, intVar);
    ");
    // create and populate a host array
    engine.Execute(@"
        numbers = host.newArr(lib.System.Int32, 20);
        for (var i = 0; i < numbers.Length; i++) { numbers[i] = i; }
        Console.WriteLine(lib.System.String.Join(', ', numbers));
    ");
    // create a script delegate
    engine.Execute(@"
        Filter = lib.System.Func(lib.System.Int32, lib.System.Boolean);
        oddFilter = new Filter(function(value) {
            return (value & 1) ? true : false;
        });
    ");
    // use LINQ from script
    engine.Execute(@"
        oddNumbers = numbers.Where(oddFilter);
        Console.WriteLine(lib.System.String.Join(', ', oddNumbers));
    ");
    // use a dynamic host object
    engine.Execute(@"
        expando = new lib.System.Dynamic.ExpandoObject();
        expando.foo = 123;
        expando.bar = 'qux';
        delete expando.foo;
    ");
    // call a script function
    engine.Execute("function print(x) { Console.WriteLine(x); }");
    engine.Script.print(DateTime.Now.DayOfWeek);
    // examine a script object
    engine.Execute("person = { name: 'Fred', age: 5 }");
    Console.WriteLine(engine.Script.person.name);
}


 相关资料
  • 脚本工具类 方法 log(level, errcode, info) 打印log 参数 类型 名称 备注 level number log级别 0为debug级别 发布版本不输出 1为关键级别,发布版本输出 errcode number 错误代码 开发者自定义 info string 描述 开发者自定义 返回值:无 例子: BK.Script.log(0,0,"This is a log");

  • 有人能帮我把脚本布局转换成实际的功能代码吗?我有一般的编码知识,但我不知道正确的语法。 基本上,我需要的是一个脚本,当提交表单条目时,它会在所有工作表/选项卡之间循环。表单包含提交表单的人的姓名(字符串)、开始日期、结束日期,最后是注释字段(字符串)。 我需要脚本来遍历每个工作表的第5行,并查找在第一个表单字段中输入的字符串(提交表单的人的姓名)。如果它找到了该名称,它应该将与该名称对应的列保存到

  • 我现在正在编写一个基本的PhP登录脚本,以便以后开发,我已经掌握了登录工具。php文件,但当我使用错误的详细信息登录(检查登录工具是否正常工作)时,我会出现以下错误: “PHP语法检查:解析错误:语法错误,第27行代码中出现意外的'$un'(T_变量)$q=”从username='$un'和pass=SHA1('$p')的用户中选择用户id、用户名“;” 任何关于为什么我得到这个错误的帮助都将不胜

  • 下载地址和介绍在这里: http://www.ton6.cn/viewthread.php?tid=409extra=page%3D1 引用脚本的内容: ; 该脚本使用 HM VNISEdit 脚本编辑器向导产生 !include "LogicLib.nsh" ; 安装程序初始定义常量 !define PRODUCT_NAME "通用 PE 工具箱" !define PRODUCT_VERS

  • 这是通用PE工具箱1.7的NSIS安装脚本,有一定的参考价值。   ; 通用 PE 工具箱安装脚本 ; 大体流程: ;1、初始化阶段:包括定义几个变量,预解压页面文件等 ;2、读取用户设置:名称、等待时间,外置目录、桌面壁纸等 ;3、判断版本号,分别按不同模式进行引导的设置。 ;4、解压文件:PE核心,外置程序,引导文件等 ;5、设置启动密码并对PE核心和引导文件进行隐藏处理 ;6、创建卸载程序

  • 我是selenium的初学者,需要以下脚本的帮助,我正在尝试发送vai文本字段的值。下面是代码片段。 显示错误 线程“main”java中出现异常。lang.IllegalStateException:驱动程序可执行文件的路径必须由webdriver设置。铬。驱动系统属性;有关详细信息,请参阅https://github.com/SeleniumHQ/selenium/wiki/ChromeDri

  • 脚本概述 Unity 采用了标准的 Mono 运行时来提供脚本功能,并扩展了自主的实践和技术,来支持脚本访问引擎。本节介绍如何通过脚本控制在 Unity 编辑器中创建的对象,并详细介绍 Unity 游戏功能和 Mono 运行时之间的关系。 译注:Mono 是 ECMA 通用语言基础架构(ECMA Common Language Infrastructure,CLI) 的实现。关于 Mono 是如何

  • 我在做一个网站。我正在做响应菜单和jQuery脚本工作,但不是很好。我的意思是每一个脚本都写得很好,但是所有的脚本加在一起就不想写得那么好了。第一个,来自响应式菜单的功能会扼杀所有功能,因此该菜单没有正常工作:/ 那么出了什么问题呢?OM怎么了?我还在学习,这可能是一个很傻的问题,但今天对我来说... 所有网站都已响应。 你可以在这里看到有什么问题 当我删除了其余的脚本,并且只保留这个用于响应式菜