Domanda

Ho un'applicazione su cui sto implementazione di localizzazione.

Ora ho bisogno di fare riferimento in modo dinamico un nome in resource file.

si supponga che ho un file di risorse chiamata Login.resx, un numero di stringhe:pippo="ciao", il bar="crudele" e baz="mondo"

normalmente, faccio riferimento come:String risultato =Login.pippo;e il risultato=="ciao";

il mio problema è che, al codice di tempo, non so se ho voglia di fare riferimento a pippo, pluto o paperino - ho una stringa che contiene sia "pippo", "pluto" o "paperino".

Ho bisogno di qualcosa di simile:

Login["pippo"];

Qualcuno sa se c'è un modo per fare riferimento in modo dinamico una stringa in un file di risorse?

È stato utile?

Soluzione

Avrai bisogno di un esempio ResourceManager per il Login.resx:

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

Potrebbe aiutare a guardare il codice generato nel file code-behind di file di risorse che vengono creati per l'IDE.Questi file fondamentalmente contengono proprietà readonly per ogni risorsa che fa una query a un sistema interno di gestione risorse.

Altri suggerimenti

Se per il tuo file di Risorse in una cartella App_GlobalResources come ho fatto io, è necessario utilizzare

global::Sistema.Risorse.ResourceManager temp = new global::Sistema.Risorse.ResourceManager("RootNamespace.Login", global::Sistema.La riflessione.L'assemblaggio.Load("App_GlobalResources"));

Mi ci è voluto un po ' per capire questo fuori.Spero che questo vi aiuterà a qualcuno.:)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top