如何为JavaScriptEngineSwitch安装引擎

本文关键字:安装 引擎 JavaScriptEngineSwitch | 更新日期: 2023-09-27 17:58:08

我正试图使用JSPool和JavaScriptEngineSwitch从.NET类库运行一些javascript,但我不知道如何安装JavaScriptEngineSwitcher.V8。到目前为止,我的代码是简单的

public class Renderer : IDisposable
{
    private readonly JsPool _pool;
    private static readonly string[] _requiredFiles = { "vendors", "app" };
    public Renderer(string jsPath)
    {
        _pool = new JsPool(new JsPoolConfig
        {
            Initializer = initEngine =>
            {
                foreach (var file in _requiredFiles)
                {
                    initEngine.ExecuteFile(jsPath + "''" + file + ".js");
                }
            }
        });
    }
    public string Render()
    {
        using (var engine = _pool.GetEngine())
        {
            return engine.Evaluate<string>(@"myjsFn()");
        }
    }
    public void Dispose()
    {
        _pool.Dispose();
    }
}

但这引发了一个NullRefException,因为没有引擎注册

NullReferenceException: Object reference not set to an instance of an object.
JavaScriptEngineSwitcher.Core.JsEngineSwitcher.CreateDefaultJsEngineInstance()

我的应用程序以dnx451为目标,我在依赖项中指定了JSPool 0.4.1和JavaScriptEngineSwitch。V8 1.5.8。我仔细查看了一下,但似乎找不到任何显示注册V8引擎所需代码的内容。有人能给我指正确的方向吗?

如何为JavaScriptEngineSwitch安装引擎

此问题已在2.0.0版JavaScript引擎切换器和2.0.0版JSPool中解决。在安装NuGet软件包之前,我建议先阅读文档中的"如何将应用程序升级到2.X版本"部分。

但值得注意的是,JavaScriptEngineSwitch。V8模块只能在由"ASP.NET核心web应用程序(.NET Framework)"模板创建的web应用程序中使用。