azz*_*123 5 c# embedded-resource webassembly blazor
我目前正在开发托管在 .NET Standard 2.1 中的 Blazor WebAssembly Asp.NET。
我尝试从单独的 .NET Standard 2.1 加载资源文件。C# 类库。
不幸的是我总是收到以下错误:
“Microsoft.AspNetCore.Components.WebAssembly.Rendering.WebAssemblyRenderer[100] 未处理的异常渲染组件:无法加载字段“MyNamespace.Footer:k__BackingField”的类型(0),原因是:无法加载文件或程序集“MyNamespace.Resources”, Version=1.0.0.0、Culture=neutral、PublicKeyToken=null' 或其依赖项之一。”
我的项目结构如下所示:
我这样加载资源:
在我的 Program.cs Main 方法中,我设置当前区域性如下:
CultureInfo.DefaultThreadCurrentCulture = new CultureInfo("en-US");
CultureInfo.DefaultThreadCurrentUICulture = new CultureInfo("en-US");
Run Code Online (Sandbox Code Playgroud)
我添加本地化服务:
services.AddLocalization();
Run Code Online (Sandbox Code Playgroud)
接下来,在我想要使用文化设置的 .razor 页面中,我注入了本地化服务:
@inject IStringLocalizer<Translations> Translations
Run Code Online (Sandbox Code Playgroud)
这里我只是将项目引用加载到我的资源项目中。我在这个项目中没有使用 .resx。
您知道如何从外部 .NET Standard 2.1 加载资源吗?C# 类库集成到 Blazor Wasm 项目中?
该错误来自名称冲突,该项目可以编译但无法加载。
我知道一种让它发挥作用的方法,我不确定这是唯一或最好的方法。
MyNamespace.BlazorApp.TranslationsResources在翻译项目中创建一个名为的文件夹builder.Services.AddLocalization(options => options.ResourcesPath = "Resources");资源是多个地方的默认名称,将您自己的项目命名为相同的名称并不是一个好主意。ResourcesPath 似乎是必需的,我不知道默认值是什么。
| 归档时间: |
|
| 查看次数: |
5239 次 |
| 最近记录: |