Question

J'ai une méthode de service qui accepte l'objet CultureInfo en tant que paramètre. Je veux l'utiliser pour obtenir des chaînes correctes de ressources par la langue qui a été spécifié. J'ai donc une méthode sur le service comme:

public string GetTranslatedString(CultureInfo c)

Et sur le client j'appelle cette méthode comme ceci:

ServiceReference.GetTranslatedString(CultureInfo.CurrentUICulture);

J'ai aussi essayé:

ServiceReference.GetTranslatedString((CultureInfo)CultureInfo.CurrentUICulture.Clone());

Mais il produit des résultats incorrects! L'objet d'information de la culture se passe comme si elle décrivait la culture du PC où le service est, non pas la culture du PC où le client est. Donc, si le client a la culture « nl », le serveur obtient encore la culture « en »! Pourquoi? Je sais comment résoudre ce problème autrement en passant LCID au service à la place de l'objet, mais je veux vraiment savoir pourquoi l'approche décrite ne fonctionne pas.

Était-ce utile?

La solution

Essayez ceci (juste 4 fun):

CultureInfo ci = CultureInfo.CurrentUICulture;
string text = ServiceReference.GetTranslatedString(ci);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top