Bezugnehmend uuf den Kommentar im Post C#: Konfiguration als XML-Datei speichern , möchte ich nun auch zeigen, wie man eine Konfiguration alternativ als Serialisiertes Objekt in eine Datei speichern kann.
Die Konfiguration hat wieder die 3 eigenschaften „Server“,“Benutzer“ und „Passwort“ um einen Login auf einem FTP-Server zu ermöglichen.
Folgende Klasse soll nun unser Konfigurations-Objekt darstellen:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | namespace test { [Serializable] class config { public string server; public string benutzer; public string passwort; public config() { if (server == null) server = "localhost"; if (benutzer == null) benutzer = "usr_3377"; if (passwort == null) passwort = "PwD$5$67"; } public config load() { config Konfiguration; FileStream fs = new FileStream("config.dat", FileMode.Open); BinaryFormatter formatter = new BinaryFormatter(); Konfiguration = (config)formatter.Deserialize(fs); fs.Close(); return Konfiguration; } public void save() { FileStream fs = new FileStream("config.dat", FileMode.Create); BinaryFormatter formatter = new BinaryFormatter(); formatter.Serialize(fs, this); fs.Close(); } } } |
Und hier, passend dazu der klick in einem button, welcher das konfigurations-objekt mit standard-werten laden kann, aus einer Datei laden kann und in eine Datei schreiben kann.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | private void button1_Click(object sender, EventArgs e) { //Konfiguration mit Standard-Werten laden config Konfiguration = new config(); // Konfiguration aus Datei laden config Konfiguration = new config(); Konfiguration = Konfiguration.load(); // Konfiguration anzeigen Console.WriteLine("Server:" + Konfiguration.server); Console.WriteLine("Benutzer:" + Konfiguration.benutzer); Console.WriteLine("Passwort:" + Konfiguration.passwort); // Konfiguration ändern und Anspeichern Konfiguration.server = "neuerserver.de"; Konfiguration.benutzer = "neuerbenutzer"; Konfiguration.passwort = "N€u€$Pa$$w0rD"; Konfiguration.save(); } |
Login