JavaScriptEngineSwitcher 加载资源 javascript 文件失败

问题描述 投票:0回答:1

我有一个 .NET 8 Core C# MVC 项目来提供网站内容和一个托管逻辑的类库。

我正在尝试通过 JavaScriptEngineSwitcher 运行 ua-parser-js,因为我找不到像这样最近更新的基于 C# 的项目。

我将 nuget 包安装到我的类库中,并将 JsEngineSwitcher 添加到我的 MVC 项目 Program.cs 文件中的可用服务中。

builder.Services.AddJsEngineSwitcher(options =>
{
    options.AllowCurrentProperty = false;
    options.DefaultEngineName = JintJsEngine.EngineName;
}).AddJint();

在我的控制器中,我加载注入的服务如下

var jsEngineSwitcher = _serviceProvider.GetService<IJsEngineSwitcher>();
var engine = jsEngineSwitcher.CreateDefaultEngine();

我将 UA 和引擎传递给我尝试加载 JS 文件的类库方法。 JS 文件作为嵌入资源添加到类库的根文件夹中。

engine.ExecuteResource("<class library name>.ua-parser.min.js", typeof(Program).Assembly);

不幸的是,这失败了

System.NullReferenceException: 'Resource with name '<class library name>.ua-parser.min.js' is null.'

我通过下面的代码检查了JS文件是否真的作为资源退出,并且它确实有“.ua-parser.min.js”

System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceNames();

github 存储库中的示例项目似乎没有加载任何 JS,我无法找到最近的示例除了这个

有人知道我做错了什么吗?

javascript c# asp.net-core-mvc
1个回答
0
投票
弄清楚了,而不是

engine.ExecuteResource("<class library name>.ua-parser.min.js", typeof(Program).Assembly);
我必须使用

engine.ExecuteResource("<class library name>.ua-parser.min.js", typeof(<class library name here>).Assembly);
    
© www.soinside.com 2019 - 2024. All rights reserved.