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.

War es hilfreich?

Lösung

Probieren Sie dies aus (nur 4 Spaß):

CultureInfo ci = CultureInfo.CurrentUICulture;
string text = ServiceReference.GetTranslatedString(ci);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top