none
ListView in einer XML-Datei speichern RRS feed

  • Frage

  • Hallo,

    ich habe folgendes Problem:
    Ich würde gerne eine zuvor gefüllte ListView(Anrede, Vorname, Nachname) in ein XML-Dokument speichern. Bin leider noch Anfänger was C# betrifft und würde mich freuen wenn ihr mir helfen könntet.

    Anbei der Code:

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    using System.Xml.Serialization;
    using System.IO;
    
    namespace xmlneu
    {
        
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
    
            public void button1_Click(object sender, EventArgs e)
            {
                List<Person> personen = new List<Person>();
                Person a = new Person();
                personen.Add(a);
    
                Daten_erfassen(a);
                Daten_ausgeben(a);
            }
    
            public void button2_Click( object sender, EventArgs e)
            {
                System.Windows.Forms.FolderBrowserDialog objDialog = new FolderBrowserDialog();
                objDialog.Description = "Beschreibung";
                objDialog.SelectedPath = @"C:\Benutzer\Ureich\Desktop";                                          // Vorgabe Pfad (und danach der gewählte Pfad)
                DialogResult objResult = objDialog.ShowDialog(this);
                if (objResult == DialogResult.OK)
                {
                    MessageBox.Show("Neuer Pfad : " + objDialog.SelectedPath);
                                                                                                                //personObjekt erstellen und mit Werten befüllen
    
                    ListViewItem eintrag = new ListViewItem();
                                                                                                                //personObjekt serialisieren
                    SerializePersonToXML(eintrag,objDialog);
                }
                else
                    MessageBox.Show("Abbruch gewählt!");
            }
    
            public void SerializePersonToXML(ListViewItem eintrag, FolderBrowserDialog objDialog)
            {
                FileStream file = new FileStream(objDialog.SelectedPath + "\\Person.xml", FileMode.Create);
                 //Erstelle einen XML-Serialisierer für Objekte vom Typ ListView
              XmlSerializer serializer = new XmlSerializer(typeof(ListView));
                                                                                                                 //Erstelle einen FileStream auf die Datei, in die unserer
                                                                                                                //person-Objekt in XML-Form gespeichert werden soll.
    
                                                                                                                //Serialisiere das übergebene person-Objekt (blogObj)
                                                                                                                //und schreibe es in den FileStream.
                serializer.Serialize(file, eintrag);
    
                                                                                                                //Schließe die XML-Datei.
                file.Close();
            }
    
             public void Daten_erfassen(Person a)
             {
                    a.Anrede = textBox1.Text;
                    a.Vorname = textBox2.Text;
                    a.Nachname = textBox3.Text;
             }
    
             public void Daten_ausgeben(Person a)
             {
                 ListViewItem eintrag = new ListViewItem(a.Anrede);
                 eintrag.SubItems.Add(a.Vorname);
                 eintrag.SubItems.Add(a.Nachname);
                 listView1.Items.Add(eintrag);
             }
            }
        
    }


    Ich komme nicht weiter, es wird immer diese Fehlermeldung angezeigt: 

    Eine nicht behandelte Ausnahme des Typs "System.InvalidOperationException" ist in System.Xml.dll aufgetreten.

    Zusätzliche Informationen: Beim Generieren des XML-Dokuments ist ein Fehler aufgetreten.

    Vielen Dank im Voraus :)

    Montag, 17. November 2014 13:52

Antworten