Wie in der asp.net core docs erläutert, können Sie einen benutzerdefinierten Anbieter für die Anforderungslokalisierung konfigurieren. Wie in der Dokumentation angegeben:Wie injiziere ich DbContext in einem benutzerdefinierten Lokalisierungsanbieter in ASP.NET Core?
Angenommen, Sie möchten Ihre Kunden ihre Sprache und Kultur in Ihren Datenbanken speichern lassen. Sie könnten einen Anbieter schreiben, der diese Werte für den Benutzer sucht.
, die für den folgenden Codeausschnitt wird in der Dokumentation zur Verfügung gestellt und auch in der Github Probe 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");
}));});
Kann mich jemand erklären, wie man ein DbContext
injizieren, um die benutzerspezifische Sprache von DB laden in die obige Funktion?
Vielen Dank für Ihre Antwort! Ihr bereitgestelltes Codebeispiel hat zwei kleine Fehler: das Schlüsselwort 'class' vor dem Konstruktor und die Methode' GetService' ist nicht generisch, daher müssen Sie 'GetService (typeof (AppDbContext))' aufrufen; ' – MDummy
Die Frage wurde mit beiden Optionen aktualisiert fix und wie man den 'GetService' –
Tseng
verwendet Danke für die Verdeutlichung der Verwendung von 'GetService' –
MDummy