C# 执行Javascript脚本

该测试在.netcore环境中执行。

1.引用微软提供的包"Microsoft.ClearScript"。

2.编写好Javascript脚本。

function testFunc(t) {
    return t + ",这是一个演示脚本";
}

3.在项目中添加C#代码。

using (var engine = new V8ScriptEngine())
{

    string testScript = System.IO.File.ReadAllText("demo.js", System.Text.Encoding.UTF8);

    engine.Execute(testScript);
    //直接C#函数调用
    var rValue = engine.Script.testFunc("你好");
    Console.WriteLine(rValue); //你好,这是一个演示脚本

    //或者使用脚本调用
    var rValue2 = engine.Invoke("testFunc", "你好");
    Console.WriteLine(rValue2); //你好,这是一个演示脚本
}

4.其他使用方法和相关文档,可以访问项目的相关链接

源码地址:https://github.com/microsoft/ClearScript

例  子:https://microsoft.github.io/ClearScript/Examples/Examples.html

5.使用ClearScript需要注意的。

  • 如果JavaScript代码中有window等浏览器对象,执行engine.Execute(testScript);会报错。
  • 如果脚本中有未定义的对象,同样执行engine.Execute(testScript);也会报错。
  • 如果想执行多个文件,只需要将多个文件拼接成一个字符串即可。
  • 考虑到某一个JavaScript脚本文件是不能修改情况下,脚本文件可以看成包含输入输出的模块。模块中用到的成员变量可以自己定义一个JavaScript脚本文件进行适配。
原文地址:https://www.cnblogs.com/LittleJin/p/14428459.html