none
Werte in XML speichern und bei start wieder laden RRS feed

  • 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

    Dienstag, 25. August 2015 11:33

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);
                }
    
            }
        }
    }

    Dienstag, 25. August 2015 13:12

Alle 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);
                }
    
            }
        }
    }

    Dienstag, 25. August 2015 13:12