Domanda

Ho un metodo di servizio che accetta oggetto CultureInfo come parametro. Voglio usare per ottenere corrette stringhe risorse dal linguaggio che è stato specificato. Così ho un metodo sul servizio come:

public string GetTranslatedString(CultureInfo c)

E sul client Io chiamo questo metodo come questo:

ServiceReference.GetTranslatedString(CultureInfo.CurrentUICulture);

Ho anche provato:

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

ma produce risultati non corretti! L'oggetto informazioni cultura viene passato come se stesse descrivendo la cultura del PC in cui il servizio è, non è la cultura del PC in cui il cliente è. Quindi, se il cliente ha la cultura "nl", il server ottiene ancora "en" cultura! Perché? Io so come risolvere questo problema altrimenti passando LCID al servizio anziché l'oggetto, ma voglio davvero sapere perché l'approccio descritto non funziona.

È stato utile?

Soluzione

Prova questo (solo 4 fun):

CultureInfo ci = CultureInfo.CurrentUICulture;
string text = ServiceReference.GetTranslatedString(ci);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top