該測試在.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腳本文件進行適配。