推荐一个.Net开源库,用来解析和执行JavaScript代码。
01 项目简介
Jurassic是一个开源的托管JavaScript执行引擎,使用MS-PL授权协议。它的目标是成为.NET平台上功能最强,最为标准的JavaScript引擎。
02 项目特点
**1、功能强大:**支持ECMAScript 3和ECMAScript 5的功能,具备简单但强大的API,将JavaScript编译为.NET字节码(CIL),而非解释执行。这些功能使得Jurassic能够满足各种不同的编程需求;
**2、适用场景多:**可以作为.Net应用程序的一部分,适用于多种场景,比如:桌面应用、Web应用、游戏开发;
**3、纯.Net开发:**纯.Net开发,不依赖任何第三方库,可以完全集成到.Net框架中,可以在任何支持.Net平台执行;
**4、高性能:**使用轻量级代码生成技术,所有的动态代码均可被回收,使得具有高效的内存管理和高性能的运行速度;
5、集成Visual Studio调试功能:支持Visual Studio的调试功能,方便开发人员进行开发与调试。
03 使用示例
**1、示例1:**简单执行JavaScript代码
var engine = new Jurassic.ScriptEngine();
//输出11
Console.WriteLine(engine.Evaluate("var a = 5; var b = 6; a + b;"));
engine.Evaluate("function add(a,b){return a+b;}");
var result = engine.CallGlobalFunction<int>("add", 5, 6);
//输入11
Console.WriteLine(result);
**2、示例2:**C#中调用JavaScript函数
var engine = new Jurassic.ScriptEngine();
engine.SetGlobalFunction("test", new Func<int, int, int>((a, b) => a + b));
var result = engine.Evaluate<int>("test(5, 6)");
//输出11
Console.WriteLine(result);
3、示例3:加载JavaScript文件
var engine = new Jurassic.ScriptEngine();
engine.ExecuteFile(@"utils.js");
var result = engine.CallGlobalFunction<int>("add", 5, 6);
//输出11
Console.WriteLine(result);
utils.js代码
function add(a, b) {
return a + b;
}
04 项目地址
https://github.com/paulbartrum/jurassic
- End -
推荐阅读