Nota
O acceso a esta páxina require autorización. Pode tentar iniciar sesión ou modificar os directorios.
O acceso a esta páxina require autorización. Pode tentar modificar os directorios.
Casi todas las aplicaciones de calidad de producción tienen que usar recursos. Un recurso es cualquier dato no ejecutable que se implemente lógicamente con una aplicación. Un recurso puede mostrarse en una aplicación como mensajes de error o como parte de la interfaz de usuario. Los recursos pueden contener datos en varios formularios, incluidas cadenas, imágenes y objetos persistentes. (Para escribir objetos persistentes en un archivo de recursos, los objetos deben ser serializables). Almacenar los datos en un archivo de recursos le permite cambiar los datos sin volver a compilar toda la aplicación. También permite almacenar datos en una sola ubicación y elimina la necesidad de confiar en datos codificados de forma rígida que se almacenan en varias ubicaciones.
.NET proporciona compatibilidad completa para la creación y localización de recursos. Además, .NET admite un modelo sencillo para empaquetar e implementar recursos localizados.
Creación y localización de recursos
En una aplicación no localizada, puede usar archivos de recursos como repositorio para los datos de la aplicación, especialmente para las cadenas que, de lo contrario, podrían codificarse de forma rígida en varias ubicaciones del código fuente. Normalmente, se crean recursos como archivos text (.txt) o XML (.resx) y se usa Resgen.exe (Generador de archivos de recursos) para compilarlos en archivos .resources binarios. Estos archivos se pueden incrustar en el archivo ejecutable de la aplicación mediante un compilador de lenguaje. Para obtener más información sobre la creación de recursos, consulte Creación de archivos de recursos.
También puedes localizar los recursos de tu aplicación para culturas específicas. Esto le permite compilar versiones localizadas (traducidas) de las aplicaciones. Al desarrollar una aplicación que usa recursos localizados, designa una referencia cultural que actúa como referencia cultural neutra o de reserva cuyos recursos se usan si no hay recursos adecuados disponibles. Normalmente, los recursos de la referencia cultural neutra se almacenan en el ejecutable de la aplicación. Los recursos restantes para culturas localizadas individuales se almacenan en ensamblajes satélite independientes. Para obtener más información, consulte Creación de ensamblados satélite.
Empaquetar e implementar recursos
Los recursos adaptados de una aplicación se implementan en ensamblados satélite. Un ensamblado satélite contiene los recursos de una sola referencia cultural; no contiene ningún código de aplicación. En el modelo de implementación de ensamblado satélite, se crea una aplicación con un ensamblado predeterminado (que normalmente es el ensamblado principal) y un ensamblado satélite para cada referencia cultural que admite la aplicación. Dado que los ensamblados satélite no forman parte del ensamblado principal, puede reemplazar o actualizar fácilmente los recursos correspondientes a una referencia cultural específica sin reemplazar el ensamblado principal de la aplicación.
Determine cuidadosamente qué recursos componen el ensamblado de recursos predeterminado de la aplicación. Dado que forma parte del ensamblado principal, los cambios en él requerirán que reemplace el ensamblado principal. Si no proporciona un recurso predeterminado, se producirá una excepción cuando el proceso de reserva de recursos intente encontrarlo. En una aplicación bien diseñada, el uso de recursos nunca debe producir una excepción.
Para obtener más información, consulte el artículo Empaquetado e implementación de recursos .
Recuperar recursos
En tiempo de ejecución, una aplicación carga los recursos localizados adecuados por subproceso, en función de la referencia cultural especificada por la CultureInfo.CurrentUICulture propiedad . Este valor de propiedad se deriva de la siguiente manera:
Asignando directamente un objeto CultureInfo que representa la cultura localizada a la propiedad Thread.CurrentUICulture.
Si no se ha asignado explícitamente una referencia cultural, mediante la recuperación de la referencia cultural de la interfaz de usuario predeterminada del subproceso de la propiedad CultureInfo.DefaultThreadCurrentUICulture.
Si no se ha asignado explícitamente ninguna referencia cultural a la interfaz de usuario predeterminada del subproceso, mediante la recuperación de la referencia cultural del usuario actual del equipo local. Las implementaciones de .NET que se ejecutan en Windows lo hacen llamando a la función de Windows
GetUserDefaultUILanguage.
Para obtener más información sobre cómo se establece la cultura de la interfaz de usuario actual, consulte las páginas de referencia CultureInfo y CultureInfo.CurrentUICulture.
A continuación, puede recuperar recursos para la cultura de la interfaz de usuario actual o para una cultura específica mediante la clase System.Resources.ResourceManager. Aunque la ResourceManager clase se usa normalmente para recuperar recursos, el System.Resources espacio de nombres contiene tipos adicionales que se pueden usar para recuperar recursos. Estos incluyen:
La ResourceReader clase , que permite enumerar los recursos incrustados en un ensamblado o almacenados en un archivo .resources binario independiente. Resulta útil cuando no conoce los nombres precisos de los recursos que están disponibles en tiempo de ejecución.
La ResXResourceReader clase , que permite recuperar recursos de un archivo XML (.resx).
La clase ResourceSet, que permite recuperar los recursos de una cultura específica sin observar reglas de reemplazo. Los recursos se pueden almacenar en un ensamblado o en un archivo .resources binario independiente. También puede desarrollar una IResourceReader implementación que le permita usar la ResourceSet clase para recuperar recursos de algún otro origen.
La ResXResourceSet clase , que permite recuperar todos los elementos de un archivo de recursos XML en memoria.