You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET 8 Blazor WASM中ar-KW区域文化未在CultureInfo列表中显示

解决Blazor WASM .NET 8中无法显示ar-KW区域文化的问题

1. 检查区域文化的获取代码

确保你使用正确的CultureTypes枚举值获取所有特定区域文化,而非中性文化。示例代码:

var allSpecificCultures = CultureInfo.GetCultures(CultureTypes.SpecificCultures)
    .OrderBy(c => c.DisplayName)
    .ToList();
  • 若使用CultureTypes.NeutralCultures,仅会返回ar这类中性文化,无法获取ar-KW、ar-SA这类带区域的特定文化
  • 也可使用CultureTypes.AllCultures获取所有类型的文化

2. 确认.csproj配置位置正确

确保<BlazorWebAssemblyLoadAllGlobalizationData>true</BlazorWebAssemblyLoadAllGlobalizationData>放在项目文件的<PropertyGroup>节点内,避免配置不生效:

<Project Sdk="Microsoft.NET.Sdk.BlazorWebAssembly">
  <PropertyGroup>
    <TargetFramework>net8.0</TargetFramework>
    <BlazorWebAssemblyLoadAllGlobalizationData>true</BlazorWebAssemblyLoadAllGlobalizationData>
    <!-- 其他项目配置 -->
  </PropertyGroup>
</Project>

3. 清理重建并清除缓存

Blazor WASM的缓存可能导致旧的全球化数据未更新,执行以下步骤:

  • 在项目目录运行命令:dotnet clean && dotnet build
  • 打开浏览器,按Ctrl+Shift+R强制刷新页面,或进入浏览器设置清除当前站点的缓存数据

4. 验证区域文化是否可实例化

在代码中直接尝试实例化ar-KW,判断全球化数据是否已加载:

try
{
    var kuwaitiCulture = new CultureInfo("ar-KW");
    // 能成功实例化说明数据已加载,问题出在列表获取逻辑
}
catch (CultureNotFoundException)
{
    // 实例化失败说明配置未生效,需重新检查csproj和重建项目
}

5. 兜底方案:手动注册区域文化

若以上步骤都无效,可在程序初始化时(如Program.cs)手动注册缺失的区域文化:

CultureInfo.RegisterCulture(new CultureInfo("ar-KW"));

内容的提问来源于stack exchange,提问作者fingers10

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 17:01:06