2009-11-04 20 views
11

Quiero almacenar mis recursos en un formato de archivo diferente que los recursos de NET (en particular, .po), así que escribí un conjunto de recursos personalizado con un lector de recursos personalizado para recuperarlos. Creé un ResourceManager usando el método estático CreateFileBasedResourceManager que crea una nueva instancia del administrador que recupera conjuntos de recursos de archivos en un directorio específico, usando el conjunto de recursos especificado (el personalizado que escribí en mi caso), usando Name.culture.resources nombres de archivoExtender el administrador de recursos basado en archivos C#

Sin embargo, me gustaría cambiar la convención del nombre del archivo. Noté que hay un método de GetResourceFileName sobresatural para precisamente ese propósito. Pero al usar el reflector, noté que el constructor utilizado por CreateFileBasedResourceManager es privado y, de lo contrario, es imposible establecer el indicador "usar archivos en lugar de ensamblajes".

¿Hay alguna forma de evitar esto, sin necesidad de volver a implementar todo el método InternalGetResourceSet?

¡Muchas gracias!

+1

¿Alguna vez se resolvieran esto? Podría usar la reflexión dentro de la aplicación para superar el problema del "indicador privado" – jcolebrand

+1

Utilicé el reflector para simplemente copiar la implementación del administrador de recursos y modificar lo que fuera necesario. No muy elegante, pero funcionó. –

Respuesta

1

Mono tiene una pequeña y buena utilidad que ayuda con esto, se llama Msgfmt, que se puede utilizar para crear archivos .resources del directorio de archivos .po.

Msgfmt.exe -iMessages.es.po -oMessages.es.resources 

me encontré con un interesante artículo @http://weblogs.manas.com.ar/spalladino/2009/10/01/using-gnu-gettext-for-i18n-in-c-and-asp-net/ que me ayudó y bien que te pueden ayudar también ..

Es un enfoque diferente pero funcionó para mí!

+2

Gracias por el enlace al artículo ... pero el autor es en realidad yo mismo: P –

+0

Buen artículo ... Eso es algo para recordar ... ¡consulte al autor del artículo antes de publicar el enlace! –

Cuestiones relacionadas