Pregunta

Tengo un método de servicio que acepta el objeto CultureInfo como parámetro. Quiero usarlo para obtener cadenas correctas de los recursos por el lenguaje que se especificó. Entonces tengo un método en el servicio como:

public string GetTranslatedString(CultureInfo c)

Y en el cliente llamo a este método como este:

ServiceReference.GetTranslatedString(CultureInfo.CurrentUICulture);

También lo he intentado:

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

¡Pero produce resultados incorrectos! El objeto de información de la cultura se pasa como si estuviera describiendo la cultura de la PC donde está el servicio, no la cultura de la PC donde está el cliente. Entonces, si el cliente tiene cultura "NL", ¡el servidor todavía obtiene cultura "EN"! ¿Por qué? Sé cómo resolver este problema de lo contrario pasando LCID al servicio en lugar del objeto, pero realmente quiero saber por qué el enfoque descrito no funciona.

¿Fue útil?

Solución

Prueba esto (solo 4 diversión):

CultureInfo ci = CultureInfo.CurrentUICulture;
string text = ServiceReference.GetTranslatedString(ci);
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top