2012-04-07 19 views
0

In meiner wp7-Anwendung mache ich eine Web-Anfrage, die einen Statuscode wie 100, 110, etc. zurückgibt. Jeder Statuscode ist mit einer Statusmeldung verknüpft. Diese Statusmeldungen sind in meiner Anwendung lokalisiert.Verketten Variablennamen in C#

z.

m100 'OK' 
m110 'Text was empty' 

Ich möchte diesen Text in einem Meldungsfeld wie diesem zeigen. contents gibt uns den Statuscode als Zeichenfolgenwert.

var s = 
    MessageBox.Show(AppResources.m100, AppResources.Notice, MessageBoxButton.OK); 

Aber ich möchte nicht für jede Nachricht ein Meldungsfeld angeben. Ich möchte so dynamisch damit umgehen.

var s = 
    MessageBox.Show(AppResources.m+contents, AppResources.Notice, 
        MessageBoxButton.OK); 

Irgendeine Idee, wie man das macht?

+0

Anstatt zu versuchen, den Namen der Variable zuzugreifen, können Sie versuchen, eine Dictionnay artige Struktur zu verwenden (oder hashmap, Hash-Tabelle, usw. ..) um die Nachrichten zu speichern und m100, m110 ... als Schlüssel für den Zugriff zu verwenden. So erhalten Sie Ihre Nachricht: 'myDictionnary.get (M100)' – Mesop

+0

@olchauvin, ich denke, die 'AppResources'-Klasse wird aus einer Ressource-Datei generiert, so dass das Wörterbuch bereits vorhanden ist. – svick

Antwort

4

Sie sollten die ResourceManager zu verwenden, um den Wert zu erhalten:

AppResources.ResourceManager.GetString("m" + contents) 
+0

danke das funktioniert ganz gut –