Der WCF -Service bekommt falsche Kultur
-
25-10-2019 - |
Frage
Ich habe eine Servicemethode, die CultureInfo -Objekt als Parameter akzeptiert. Ich möchte es verwenden, um korrekte Zeichenfolgen aus Ressourcen durch die angegebene Sprache zu erhalten. Ich habe also eine Methode im Dienst wie:
public string GetTranslatedString(CultureInfo c)
Und auf dem Client nenne ich diese Methode wie folgt:
ServiceReference.GetTranslatedString(CultureInfo.CurrentUICulture);
Ich habe auch versucht:
ServiceReference.GetTranslatedString((CultureInfo)CultureInfo.CurrentUICulture.Clone());
Aber es liefert falsche Ergebnisse! Das Kultur -Info -Objekt wird so übergeben, als würde es die Kultur des PC beschreiben, in der sich der Service befindet, nicht die Kultur des PCs, in der sich der Kunde befindet. Wenn der Client also "NL" -Kultur hat, erhält der Server immer noch "en" Kultur! Wieso den? Ich weiß, wie ich dieses Problem ansonsten lösen kann, indem ich LCID an den Dienst anstelle des Objekts weitergibt, aber ich möchte wirklich wissen, warum der beschriebene Ansatz nicht funktioniert.
Lösung
Probieren Sie dies aus (nur 4 Spaß):
CultureInfo ci = CultureInfo.CurrentUICulture;
string text = ServiceReference.GetTranslatedString(ci);