Pregunta

Estoy teniendo un problema para conseguir las entradas del archivo de recursos correctos y necesito un poco de ayuda ... aquí está mi escenario

Tengo una serie de proyectos que son parte de una gran solución de informes que siguen este formato

Plugin. **** informe

  • Referencia (carpeta)
  • DataAccessLayer (carpeta)
  • conjuntos de datos (carpeta)
  • DataWrappers (carpeta)
  • La localización (carpeta)

    *. Cs

Cuando * es el nombre del informe que voy a generar

Los Cs * tiene una declaración de exportación para que pueda recogerlo usando MEF (no estoy seguro si esto es relevante, pero pensamos que vale la pena mencionar). El espacio de nombres de Cs * es CompanyName.DataShaper.Plugin. * Informe. Debido al nombre del proyecto, y la ubicación de los archivos, he cambiado el nombre por defecto para cada proyecto sea CompanyName.DataShaper.Plugin. * Informe (que era sólo Plugin. * Informe antes de mi cambio).

Ahora para el problema .. interior de Cs * Soy instancias de un ResourceManager. Que se parece a esto ...

_resourceManager =
                new ResourceManager("CompanyName.DataShaper.Plugin.*Report.Localization.*Report",
                    Assembly.GetExecutingAssembly());

dentro de mi archivo del diseñador resx tengo el siguiente ...

internal static global::System.Resources.ResourceManager ResourceManager {
            get {
                if (object.ReferenceEquals(resourceMan, null)) {
                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("CompanyName.DataShaper.Plugin.*Report.Localization.*Report", typeof(*Report).Assembly);
                    resourceMan = temp;
                }
                return resourceMan;
            }

Mi llamado al gestor de recursos se ve así ...

string resourceString = _resourceManager.GetString(resourceKey, _currrentCultureInfo);

donde _currentCultureInfo es un un objeto CultureInfo correcta.

tengo 4 archivos resx diferentes en mi carpeta de Localización para cada proyecto, (**** Report.resx, **** Report.fr-ca.resx, **** Report.en-gb.resx, **** Report.de-de.resx).

Cuando hago la llamada al gestor de recursos, siempre llegar a la entrada de la Resx ... Nunca cualquiera de los otros archivos de idioma, independientemente del objeto CultureInfo que pasan a la llamada. ¿Qué he ensuciado?

-> Rápida actualización a mi pregunta original, pero esto no parece estar relacionada con el MEF. Me instanciada mi clase de la manera antigua (nueva * Informe ()) e hizo la llamada de localización y funciona bien

¿Fue útil?

Solución

OK, cuenta de esto .. Estoy recibiendo el archivo .resx porque está realmente integrado en el conjunto principal. Los otros archivos están siendo construidos en dlls por separado para cada idioma, entonces necesito para copiarlos en la misma carpeta que construyo mi contenedor agregado de, mi administrador de recursos a continuación, ve todos los idiomas.

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