使用 Jint ,在 .NET 中执行 JavaScript 代码

使用 Jint ,在 .NET 中执行 JavaScript 代码你好 这里是 Dotnet 工具箱 定期分享 Dotnet 有趣 实用的工具和组件 希望对您有用 Jint 简介如果您想在您的 NET 程序中使用 Javascript 那么我推荐您使用 Jint

大家好,欢迎来到IT知识分享网。

69b7125c40c358984eeba40ee861f6e7.png

8cbe8e7eeda74408a517c659c00fc0e3.gif

3998a572c6aa3920ed77276ceb930a71.png

你好,这里是 Dotnet 工具箱,定期分享 Dotnet 有趣,实用的工具和组件,希望对您有用!

Jint 简介

如果您想在您的 .NET 程序中使用 Javascript,那么我推荐您使用 Jint。

Jint 是适用于 .NET 的 开源 Javascript 解释器,功能强大,它可以在任何现代 .NET 平台上运行,因为它支持 .NET Standard 2.0 和 .NET 4.6.2 以及更高版本),包括最新的 .NET 6。

因为 Jint 既不生成任何 .NET 字节码也不使用 DLR,所以在执行比较少的代码时,它的运行效率很快。

在 Nuget 包管理器中搜索并安装 Jint 即可,它没有其他的一些依赖。

小试牛刀

执行 JS 表达式,并输出结果。

using Jint; var engine = new Jint.Engine(); var result = engine.Execute("1 + 2 + 3 + 4 + 5")                    .GetCompletionValue(); Console.WriteLine(result); // Output: 15

这里,变量 x 设置为 3,并且 x * x 在 JavaScript 中进行计算,结果直接返回给 .NET 对象。

using Jint;  var square = new Engine()     .SetValue("x", 3)     // 定义一个新变量 x     .Evaluate( "x * x")   // 声明表达式     .ToObject();          // 转换为 .NET object Console.WriteLine(square); // Output: 9

你可以直接把 .NET 中的对象实例传递给 JS 并使用它,它的修改在 .NET 和 JS 中保持同步。

var p = new Person {     Name = "Mickey Mouse" }; var engine = new Engine()     .SetValue("p", p)     .Execute("p.Name = 'Minnie'"); Console.WriteLine(p.Name); // Output: "Minnie"

你可以直接在 .NET 中执行在 JS 定义的函数。

var engine = new Engine(); var add = engine     .Execute("function add(a, b) { return a + b; }")     .GetValue("add"); var result = engine.Invoke("add",1,2);   Console.WriteLine(result); // Output: 3

您还可以使用 module 从多个脚本文件中导入和导出变量。

var engine = new Engine(options => {     options.EnableModules(@"C:\Scripts"); }) var ns = engine.ImportModule("./my-module.js"); var value = ns.Get("value").AsString();

更多其他的高级用法,可以在 github 的 Jint 项目中找到。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/124865.html

(0)
上一篇 2025-10-02 19:26
下一篇 2025-10-02 19:33

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信