问题描述: ASP.NET MVC网站偶尔以随机的RESX语言呈现,可能是DI(依赖注入)问题。
解决方法:
示例代码: 以下是一个配置ASP.NET Core依赖注入容器的示例代码,使用了ResourceManager的依赖注入:
// Startup.cs
public void ConfigureServices(IServiceCollection services)
{
// 注册资源管理器
services.AddSingleton(provider =>
{
// 可以根据需要修改资源文件的路径和基础名称
var resourceManager = new ResourceManager("Resources.MyResources", typeof(Startup).Assembly);
return resourceManager;
});
// 注册其他服务
// ...
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
// ...
// 设置请求的语言和区域设置
app.UseRequestLocalization(options =>
{
options.DefaultRequestCulture = new RequestCulture("en-US");
options.SupportedCultures = new List { new CultureInfo("en-US"), new CultureInfo("zh-CN") };
options.SupportedUICultures = new List { new CultureInfo("en-US"), new CultureInfo("zh-CN") };
});
// ...
}
在控制器中使用资源管理器:
// HomeController.cs
public class HomeController : Controller
{
private readonly ResourceManager _resourceManager;
public HomeController(ResourceManager resourceManager)
{
_resourceManager = resourceManager;
}
public IActionResult Index()
{
// 使用资源管理器获取本地化字符串
var localizedString = _resourceManager.GetString("Hello");
// ...
}
}
希望以上解决方法对您有帮助!