Benutzer mit den meisten Antworten
Werte in XML speichern und bei start wieder laden

Frage
-
Hey MSDN Forumuser,
Ich muss ein paar werte beim schließen des programms speichern und dann beim start wieder laden und möchte nicht die standart Settings nutzen da diese werte später auch noch wo anders genutzt werden sollen, daher muss ich die werte in XML speichern.
Da ich noch nie mit XML gearbeitet habe weis ich nicht wie ich das am besten machen soll hoffe jemand kann mir helfen.
Gespeichert werden müssen diese werte:
- public double PlayTime;
- private int timesStarted; - private int timesStartedMP;
- private string lastStart;
- private string lastStartMP;Diese sollen dann auch wieder beim start geladen werden.
Wie mache ich das am besten. Und der ort der xml datei soll der pfad sein in der auch die exe ist.
MfG, Christoph
Antworten
-
So könnte das funktionieren:
namespace PlaylistMaker { [Serializable] public class Playlist { public double PlayTime { get; set; } public int timesStarted { get; set; } public int timesStartedMP { get; set; } public string lastStart { get; set; } public string lastStartMP { get; set; } [XmlIgnore] public string sollNichtSerialisiertWerden { get; set; } public Playlist Laden(string XMLDateiPfad) { Playlist pl = new Playlist(); try { XmlSerializer xs = new XmlSerializer(typeof(Playlist)); StreamReader sr; if (File.Exists(XMLDateiPfad)) { sr = new StreamReader(XMLDateiPfad); pl = xs.Deserialize(sr) as Playlist; sr.Close(); } } catch (Exception ex) { System.Windows.Forms.MessageBox.Show(ex.Message, "Fehler beim Laden", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error); } return pl; } public void Speichern(Playlist myPlaylist, string XMLDateiPfad) { try { XmlSerializer xs = new XmlSerializer(typeof(Playlist)); StreamWriter sw = new StreamWriter(XMLDateiPfad); xs.Serialize(sw, myPlaylist); sw.Close(); } catch (Exception ex) { System.Windows.Forms.MessageBox.Show(ex.Message, "Fehler beim Speichern", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error); } } } }
- Als Antwort vorgeschlagen Aleksander Chalabashiev Mittwoch, 2. September 2015 11:38
- Als Antwort markiert Aleksander Chalabashiev Montag, 7. September 2015 08:04
Alle Antworten
-
Die Antwort zu deiner Frage steht bereits hier im Forum, z. B. hier:
https://social.msdn.microsoft.com/Forums/de-DE/f7498c94-0d82-427c-a32e-b3f023641a53/xmldatei-lesen-werte-in-ein-objekt-speichern-und-xmlelemente-definieren?forum=visualcsharpde- Florian
-
So könnte das funktionieren:
namespace PlaylistMaker { [Serializable] public class Playlist { public double PlayTime { get; set; } public int timesStarted { get; set; } public int timesStartedMP { get; set; } public string lastStart { get; set; } public string lastStartMP { get; set; } [XmlIgnore] public string sollNichtSerialisiertWerden { get; set; } public Playlist Laden(string XMLDateiPfad) { Playlist pl = new Playlist(); try { XmlSerializer xs = new XmlSerializer(typeof(Playlist)); StreamReader sr; if (File.Exists(XMLDateiPfad)) { sr = new StreamReader(XMLDateiPfad); pl = xs.Deserialize(sr) as Playlist; sr.Close(); } } catch (Exception ex) { System.Windows.Forms.MessageBox.Show(ex.Message, "Fehler beim Laden", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error); } return pl; } public void Speichern(Playlist myPlaylist, string XMLDateiPfad) { try { XmlSerializer xs = new XmlSerializer(typeof(Playlist)); StreamWriter sw = new StreamWriter(XMLDateiPfad); xs.Serialize(sw, myPlaylist); sw.Close(); } catch (Exception ex) { System.Windows.Forms.MessageBox.Show(ex.Message, "Fehler beim Speichern", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error); } } } }
- Als Antwort vorgeschlagen Aleksander Chalabashiev Mittwoch, 2. September 2015 11:38
- Als Antwort markiert Aleksander Chalabashiev Montag, 7. September 2015 08:04