gpt4 book ai didi

javascript - 如何使用 jint 从 C# 函数返回值?

转载 作者:行者123 更新时间:2023-12-05 00:36:16 26 4
gpt4 key购买 nike

我目前正在使用 Jint ( https://github.com/sebastienros/jint ) 来处理 JavaScript。
我希望能够在 JavaScript 中使用自定义函数,该函数将执行在 C# 中创建的函数,然后将值返回给 JavaScript。
例如,如果 JavaScript 是:

var x = MultiplyByTwo(100);
在我的 C# 中,我有:
private static int MultiplyByTwo(int obj)
{
return obj * 2;
}
那么上面将给变量 x 的值 200。
根据文档,有以下选项:
var engine = new Engine()
.SetValue("log", new Action<object>(Console.WriteLine));

engine.Execute(@"
function hello() {
log('Hello World');
};

hello();
");
我可以用函数名替换“Console.Writeline”,但它只接受一个 void 函数。
换句话说,这可以从 JS 调用 C# 函数,但不能返回值。
Jint 中是否存在像我正在寻找的选项?

最佳答案

这是一个功能齐全的示例。类型转换 Console.WriteLine是必需的,因为有多个重载,我们需要告诉编译器使用哪一个:

using System;
using Jint;

var engine = new Engine()
.SetValue("multiplyByTwo", MultiplyByTwo)
.SetValue("log", (Action<string>)Console.WriteLine)
;

engine.Execute(@"
var x = multiplyByTwo(3);
log(x);
");

static int MultiplyByTwo(int obj)
{
return obj * 2;
}

关于javascript - 如何使用 jint 从 C# 函数返回值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71484948/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com