美文网首页
使用Jint在.Net中调用Javascript

使用Jint在.Net中调用Javascript

作者: 寻找无名的特质 | 来源:发表于2021-02-03 05:59 被阅读0次

    最近一个项目需要在.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));
            }
    

    相关文章

      网友评论

          本文标题:使用Jint在.Net中调用Javascript

          本文链接:https://www.haomeiwen.com/subject/ahfxtltx.html