最近一个项目需要在.Net中执行Javascript表单式,用到了Jint,这里简单总结一下用法。这个项目的Github地址:https://github.com/sebastienros/jint 。
在.Net项目中使用很简单,只要安装NuGet包就可以了。
在.Net中运行JavaScript表达式,示例代码如下:
var engine = new Engine();
Console.WriteLine(engine.Execute("1 + 2 + 3 + 4").GetCompletionValue());
在JavaScript中引用C#函数。下面的例子将Console.WriteLine转换为JavaScript函数,在JavaScript中调用:
class Program
{
static void Main(string[] args)
{
var engine = new Engine();
engine.SetValue("log", new Action<object>(Console.WriteLine));
engine.Execute(@"
function hello() {
log('Hello World');
};
hello();
");
}
}
这里用engine.SetValue将Console.WriteLine赋值给JavaScript变量log,然后在JavaScript代码中使用log就可以了。
在C#中使用JavaScript,下面的代码演示了如何在.Net中调用JavaScript函数:
public static void InvokeFunctionFromDotNet()
{
var engine = new Engine();
var fromValue = engine.Execute("function jsAdd(a, b) { return a + b; }").GetValue("jsAdd");
Console.WriteLine(fromValue.Invoke(5, 5));
Console.WriteLine(engine.Invoke("jsAdd", 3, 3));
}
网友评论