Question

J'ai une application sur laquelle j'implémente la localisation.

Je dois maintenant référencer dynamiquement un nom dans le fichier de ressources.

supposons que j'ai un fichier de ressources appelé Login.resx, composé d'un certain nombre de chaînes :foo="bonjour", bar="cruel" et baz="world"

normalement, je ferai référence à :Résultat de la chaîne =Login.foo ;et result=="bonjour";

mon problème est qu'au moment du code, je ne sais pas si je veux faire référence à foo, bar ou baz - j'ai une chaîne qui contient soit "foo", "bar" ou "baz".

J'ai besoin de quelque chose comme :

Connexion["foo"] ;

Est-ce que quelqu'un sait s'il existe un moyen de référencer dynamiquement une chaîne dans un fichier de ressources ?

Était-ce utile?

La solution

Vous devrez créer une instance d'un ResourceManager pour le Login.resx:

var resman = new System.Resources.ResourceManager(
    "RootNamespace.Login",
    System.Reflection.Assembly.GetExecutingAssembly()
)
var text = resman.GetString("resname");

Il peut être utile d'examiner le code généré dans les fichiers code-behind des fichiers de ressources créés par l'EDI.Ces fichiers contiennent essentiellement des propriétés en lecture seule pour chaque ressource qui effectue une requête auprès d'un gestionnaire de ressources interne.

Autres conseils

Si vous placez votre fichier de ressources dans le dossier App_GlobalResources comme je l'ai fait, vous devez utiliser

Global :: System.resources.ResourceManager temp = new Global :: System.resources.ResourceManager ("rootNamespace.login", global :: System.Reflection.Assembly.load ("App_globalresources"));

Il m'a fallu un certain temps pour comprendre cela.J'espère que cela aidera quelqu'un.:)

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