如asp.net core docs中所述,您可以为请求本地化配置自定义提供程序。正如文档中所述:如何在ASP.NET Core的自定义本地化提供程序中注入DbContext?
假设您想让您的客户在数据库中存储他们的语言和文化。您可以编写一个提供程序来为用户查找这些值。
对于下面的代码片段在文档和GitHub的样品Localization.StarterWeb还提供:
services.Configure<RequestLocalizationOptions>(options => {
var supportedCultures = new[]
{
new CultureInfo("en-US"),
new CultureInfo("fr")
};
options.DefaultRequestCulture = new RequestCulture(culture: "en-US", uiCulture: "en-US");
options.SupportedCultures = supportedCultures;
options.SupportedUICultures = supportedCultures;
options.RequestCultureProviders.Insert(0, new CustomRequestCultureProvider(async context =>
{
// My custom request culture logic
// DbContext needed here <--
return new ProviderCultureResult("en");
}));});
任何人能解释我如何注入一个DbContext
从数据库加载用户特定的语言以上功能?
非常感谢您的回答!您提供的代码示例有两个小错误:构造函数前面的'class'关键字和'GetService'方法不是通用的,因此您必须调用'GetService(typeof(AppDbContext));' – MDummy
用两个修复以及如何使用'GetService' –
Tseng
感谢您澄清'GetService' –
MDummy