Ich habe eine csharp App mit einer XML-Konfigurationsdatei, die ein Element namens "Umgebung" enthält, das auf verschiedene Werte gesetzt werden kann (zB Entwicklung/Test/Produktion).Switch-Anweisung in C# Klasse
Wenn dieser Konfigurationsdateieintrag geändert wird, sollten sich die resultierenden globalen Variablen in der Anwendung ändern. Ich habe in meiner Anwendung eine Klasse namens Globals, in der ich globale Variablen speichere. Ich möchte ein case/switch-Element hinzufügen, aber es scheint nicht zu funktionieren.
So zum Beispiel habe ich folgendes an der Spitze der Globals-Klasse definiert:
public static string environment = MyApp.Properties.Settings.Default.Environment;
Dann weiter unten in meiner Klasse versuche ich folgendes zu tun:
switch (environment)
{
case "development":
public static string Server = "SQL1";
public static string Username = "dev.user";
case "test":
public static string Server = "SQL2";
public static string Username = "test.user";
case "production":
public static string Server = "SQL3";
public static string Username = "prod.user";
default:
public static string Server = "SQL1";
public static string Username = "dev.user";
}
(Im obigen Beispiel habe ich die Anzahl der Variablen auf zwei reduziert, um es verständlicher zu machen, aber in Wirklichkeit gibt es wahrscheinlich 30 Variablen pro Umgebung.)
Dies funktioniert nicht ich mehrere Fehler erhalten:
Ungültige token 'Schalter' in Klasse, Struktur oder Interface-Memberdeklaration
ungültig token ')' in Klasse, Struktur oder Interface-Memberdeklaration ungültig Token 'Fall' in Klasse, Struktur oder Interface Member Deklaration
Gibt es eine andere Möglichkeit dies zu tun?
Dank Brad
entfernen alles public static string in case-Anweisung, Top-Klasse deklarieren –
Könnten Sie keine Standard-Config statt Transformationen verwenden? Web.Debug.Config, Web.Test.Config etc http://stackoverflow.com/questions/15683854/how-do-i-change-an-web-config-setting-using-transformation-syntax dies würde Ihnen auch geben die Möglichkeit, Werte zur Laufzeit zu ändern. – Macilquham
Die definierten Variablen sollten nicht vom Benutzer geändert werden können - wir möchten, dass sie in der App fest codiert sind. Der Benutzer sollte nur in der Lage sein, die Umgebung aus der Konfigurationsdatei zu ändern. – Brad