ClearScript .NET 脚本工具开源项目

我要开发同款
匿名用户2015年07月07日
81阅读

技术信息

开源地址
https://github.com/GregFinzer/Compare-Net-Objects
授权协议
Ms-PL

作品详情

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

示例usig System;usig Microsoft.ClearScript;usig Microsoft.ClearScript.V8;// create a script egieusig (var egie = ew V8ScriptEgie()){    // expose a host type    egie.AddHostType("Cosole", typeof(Cosole));    egie.Execute("Cosole.WriteLie('{0} is a iterestig umber.', Math.PI)");    // expose a host object    egie.AddHostObject("radom", ew Radom());    egie.Execute("Cosole.WriteLie(radom.NextDouble())");    // expose etire assemblies    egie.AddHostObject("lib", ew HostTypeCollectio("mscorlib", "System.Core"));    egie.Execute("Cosole.WriteLie(lib.System.DateTime.Now)");    // create a host object from script    egie.Execute(@"        birthday = ew lib.System.DateTime(2007, 5, 22);        Cosole.WriteLie(birthday.ToLogDateStrig());    ");    // use a geeric class from script    egie.Execute(@"        Dictioary = lib.System.Collectios.Geeric.Dictioary;        dict = ew Dictioary(lib.System.Strig, lib.System.It32);        dict.Add('foo', 123);    ");    // call a host method with a output parameter    egie.AddHostObject("host", ew HostFuctios());    egie.Execute(@"        itVar = host.ewVar(lib.System.It32);        foud = dict.TryGetValue('foo', itVar.out);        Cosole.WriteLie('{0} {1}', foud, itVar);    ");    // create ad populate a host array    egie.Execute(@"        umbers = host.ewArr(lib.System.It32, 20);        for (var i = 0; i < umbers.Legth; i++) { umbers[i] = i; }        Cosole.WriteLie(lib.System.Strig.Joi(', ', umbers));    ");    // create a script delegate    egie.Execute(@"        Filter = lib.System.Fuc(lib.System.It32, lib.System.Boolea);        oddFilter = ew Filter(fuctio(value) {            retur (value & 1) ? true : false;        });    ");    // use LINQ from script    egie.Execute(@"        oddNumbers = umbers.Where(oddFilter);        Cosole.WriteLie(lib.System.Strig.Joi(', ', oddNumbers));    ");    // use a dyamic host object    egie.Execute(@"        expado = ew lib.System.Dyamic.ExpadoObject();        expado.foo = 123;        expado.bar = 'qux';        delete expado.foo;    ");    // call a script fuctio    egie.Execute("fuctio prit(x) { Cosole.WriteLie(x); }");    egie.Script.prit(DateTime.Now.DayOfWeek);    // examie a script object    egie.Execute("perso = { ame: 'Fred', age: 5 }");    Cosole.WriteLie(egie.Script.perso.ame);}

功能介绍

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

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论