【发布时间】:2020-11-23 06:16:08
【问题描述】:
我目前正在开发托管在 .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”或它的依赖项之一。”
- 我的 .resx 文件设置为 Access Modifier: Public,在属性选项卡中如下所示:
我的项目结构如下:
- MyNamespace.BlazorApp.Client
- MyNamespace.BlazorApp.Server
- MyNamespace.BlazorApp.Resources
我这样加载资源:
- MyNamespace.BlazorApp.Client:
在我的 Program.cs Main 方法中,我将当前文化设置如下:
CultureInfo.DefaultThreadCurrentCulture = new CultureInfo("en-US");
CultureInfo.DefaultThreadCurrentUICulture = new CultureInfo("en-US");
我添加了本地化服务:
services.AddLocalization();
在我想使用文化设置的 .razor 页面中,我注入了本地化服务:
@inject IStringLocalizer<Translations> Translations
- MyNamespace.BlazorApp.Server
这里我只是将项目引用加载到我的资源项目中。我没有在这个项目中使用 .resx。
您知道如何从外部 .NET Standard 2.1 加载资源吗?将 C# 类库导入 Blazor Wasm 项目?
【问题讨论】:
-
瞎拍……第三方的项目文件里有
AddRazorSupportForMvc吗?参考:docs.microsoft.com/en-us/aspnet/core/migration/… -
仍然缺少很多细节:Translations 定义在哪里(ns & asm),文件夹结构是什么? resx 文件的确切名称是什么?
标签: c# blazor embedded-resource webassembly