GetGlobalResourceObject o Resources.Resource - ¿Cuál es mejor?
-
19-09-2019 - |
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?
- GetGlobalResourceObject ( "LocalizedText", "ErrorOccurrido toma")
- 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
Solución
Estas son las ventajas de cada enfoque:
Ventajas de GetGlobalResourceObject
(y GetLocalResourceObject
):
- Puede especificar una cultura particular, en lugar de utilizar el CurrentCulture.
- 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.
- 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:
- Se obtiene errores en tiempo de compilación si se accede a un recurso que no existe.
- 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.