如何在.NET MAUI+Blazor混合应用中获取RequestLocalizationOptions类?
解决.NET MAUI + Blazor混合应用中RequestLocalizationOptions的引用问题
核心说明
RequestLocalizationOptions类实际属于Microsoft.AspNetCore.Localization命名空间,而非你提到的Microsoft.AspNetCore.Builder,你需要安装对应的NuGet包并添加正确的命名空间引用。
具体解决步骤
安装对应NuGet包
打开项目的NuGet包管理器,搜索并安装Microsoft.AspNetCore.Localization包。也可以通过以下方式操作:- Package Manager Console命令:
Install-Package Microsoft.AspNetCore.Localization - 直接编辑项目.csproj文件,添加包引用(版本需与项目的.NET版本匹配,比如.NET 7对应7.x,.NET 8对应8.x):
<PackageReference Include="Microsoft.AspNetCore.Localization" Version="7.0.14" />
- Package Manager Console命令:
添加命名空间引用
在你的MauiProgram.cs文件顶部添加using语句:using Microsoft.AspNetCore.Localization; using System.Globalization; // 确保CultureInfo的命名空间也已引用验证代码
此时你原有的配置代码即可正常识别RequestLocalizationOptions,无需修改配置逻辑:builder.Services.Configure<RequestLocalizationOptions>(options => { options.DefaultRequestCulture = new RequestCulture("en-UK"); options.SupportedCultures = supportedCultures; options.SupportedUICultures = supportedCultures; });
补充提示
- 无需纠结Microsoft.AspNetCore.Builder命名空间的问题,因为RequestLocalizationOptions并不属于该命名空间,之前的报错是因为命名空间指向错误导致的。
- 务必保证NuGet包版本与项目的.NET MAUI目标框架版本一致,避免版本不兼容引发的其他异常。
内容的提问来源于stack exchange,提问作者Takeshi Tokugawa YD
相关产品推荐
相关产品推荐

