Pregunta

Tengo una aplicación que es multilingüe. Estoy usando las características de salida de la caja de este .Net. Cada idioma tiene su propio archivo de los App_GlobalResources (ver iamge abajo)

En el código detrás de lo que es mejor?

  1. GetGlobalResourceObject ( "LocalizedText", "ErrorOccurrido toma")
  2. Resources.LocalizedText.ErrorOccured

El segundo se utiliza menos código y tipo de seguro, se devolverá un error durante el tiempo de compilación y no correr el tiempo.

texto alternativo http://img340.imageshack.us/img340/5562/langl .gif

¿Fue útil?

Solución

Estas son las ventajas de cada enfoque:

Ventajas de GetGlobalResourceObject (y GetLocalResourceObject):

  1. Puede especificar una cultura particular, en lugar de utilizar el CurrentCulture.
  2. Puede utilizar una expresión de enlace en tiempo (es decir, una cadena) para decidir qué recurso a la carga. Esto es útil si no se puede saber de antemano qué recurso tendrá que cargar.
  3. Funciona con cualquier tipo de proveedor de recursos. Por ejemplo, funciona no sólo con el proveedor predeterminado integrado basado en RESX pero que va a trabajar el mismo en contra de un proveedor con sede en la base de datos.

Ventajas de tipos RESX inflexible de tipos:

  1. Se obtiene errores en tiempo de compilación si se accede a un recurso que no existe.
  2. Se obtiene IntelliSense mientras se trabaja en el proyecto.

Así que, al igual que con muchos "que es" mejores preguntas, la respuesta es: depende! Elija el que tiene ventajas que beneficiarán a sus escenarios particulares más.

Otros consejos

A fin de utilizar el segundo, si se sabe por adelantado cuál será el archivo de recursos y la clave.

El método GetGlobalResourceObject() es útil si usted no sabe lo que el archivo de recursos o (más probablemente) la clave será en tiempo de compilación.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top