私はJSPoolとJavaScriptEngineSwitcher.V8を使用して.NETクラスライブラリからいくつかのjavascriptを実行しようとしていますが、JavaScriptEngineSwitcher.V8をインストールする方法を理解できません。私のコードは、これまでの単純なJavaScriptEngineSwitcherのエンジンをインストールするにはどうすればよいですか?
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();
}
}
である。しかし、これは何のエンジンが
NullReferenceException: Object reference not set to an instance of an object.
JavaScriptEngineSwitcher.Core.JsEngineSwitcher.CreateDefaultJsEngineInstance()
マイアプリをターゲットとしているdnx451を登録されていないようNullRefExceptionをスローし、私はJSPool 0.4.1とJavaScriptEngineSwitcher.V8指定しました私の依存関係は1.5.8です。私はよく見てきましたが、V8エンジンを登録するのに必要なコードを見つけることはできません。誰かが私を正しい方向に向けることができますか?
再びDNXを使用しないでください。今は意味がありません。 .NET Frameworkまたは.NET Coreと言ってください。 –
FYI、プールの 'GetEngine()'メソッドから返されたオブジェクトのdisposeメソッドを見てみましょう。あなたが期待していたのとは逆に、IIRCはエンジンをプールに戻しません。プールで呼び出す別のメソッドがあります。 – Amy
@Lex Li DNXは、RC1を使って書かれているので、まだアップグレードしていないと言いました。 –