Question

J'ai un problème obtenir les entrées du fichier de ressources correctes et besoin d'aide ... voici mon scénario

J'ai une série de projets qui font partie d'une grande solution de reporting qui suivent ce format

Plugin. **** Rapport

  • Référence (dossier)
  • DataAccessLayer (dossier)
  • DataSets (dossier)
  • DataWrappers (dossier)
  • Localisation (dossier)

    *. Cs

* Où est le nom du rapport que je vais générer

Les * .cs a une déclaration d'exportation afin que je puisse le ramasser à l'aide du MEF (pas sûr si cela est pertinent, mais pense qu'il vaut la peine mentionner). L'espace de noms dans * .cs est Rapport CompanyName.DataShaper.Plugin. *. En raison du nom du projet, et l'emplacement des fichiers, j'ai changé l'espace de noms par défaut pour chaque projet soit CompanyName.DataShaper.Plugin. * Rapport (il était plug-in. * Rapport avant mon changement).

Maintenant le problème .. à l'intérieur de .cs * J'instancier un ResourceManager. Qui ressemble à ceci ...

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

dans mon fichier de concepteur resx je suit ...

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;
            }

Mon appel au gestionnaire de ressources ressemble à ceci ...

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

où _currentCultureInfo est un objet CultureInfo correct.

J'ai 4 différents fichiers resx dans mon dossier localisation pour chaque projet, (**** Report.resx, **** Report.fr-ca.resx, **** Report.en-gb.resx, **** Report.de-de.resx).

Quand je fais l'appel au gestionnaire de ressources, je reçois toujours l'entrée du .resx ... jamais des autres fichiers de langue, quel que soit l'objet CultureInfo je passe dans l'appel. Qu'est-ce que je foiré?

-> Mise à jour rapide à ma question initiale, mais cela ne semble être liée MEF. J'instancié ma classe à l'ancienne (nouveau * Rapport ()) et fait l'appel de localisation et il fonctionne très bien

Était-ce utile?

La solution

OK, je me suis dit ceci .. Je reçois le fichier .resx parce qu'il est vraiment intégré dans l'ensemble principal. Les autres fichiers sont intégrés dans se dll séparés pour chaque langue, il me faut ensuite les copier dans le même dossier que je construis mon conteneur global de mon gestionnaire de ressources voit alors toutes les langues.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top