Objekteigenschaftswerte aus Textdatei (CSV)

Hallo,
ich habe folgendes Problem:
Ich habe eine serialisierbare klasse „Kontaktliste“ die von der System.Collections.Generic.List erbt. Die Kontakte die in die liste geschrieben werden sind ebenfalls serialisierbar. Mit der unten erstellten Methode kann ich aber keine CSV Datei einlesen.
Die Methode Writefile serialiesiert bestehende kontakte aus der Liste und schreibt sie in eine datei. Das funktioniert auch soweit. Allerdings ist die Textdatei sehr merkwürdig formatiert und sobald ich sie manuell ändere kann sie nicht mehr eingelesen werden.

Hat jemand ne idee wie ich die Methoden so anpassen kann, dass ich eine CSV-Datei einlesen kann?

[Serializable()]
public class Kontaktliste:List
 {
 public void readfile()
 {
 FileStream fs = new FileStream(@"c:\test\test.txt", FileMode.Open);
 BinaryFormatter bf = new BinaryFormatter();
 Kontaktliste hilfeliste = new Kontaktliste();
 hilfeliste = (Kontaktliste)bf.Deserialize(fs);
 fs.Close();
 this.AddRange(hilfeliste);
 }

Hallo!
So kann das natürlich nicht klappen. Du verwendest einen BinaryFormatter , um Deine Objekte zu serialisieren.
Wie der Name schon sage, kommen dabei Binärdaten raus, die Du in eine Datei schreibst. Der Datei gibst Du zwar die Erweiterung „.txt“, aber es steht alles andere als Text drin, darum brauchst Du Dich auch nicht wundern, wenn nach einer manuellen Änderung die Datei nicht mehr eingelesen werden kann.

CSV Dateien wirst Du mit .NET Serialisierung nur schwerlich hinbekommen, dafür ist das CSV Format einfach nicht aussagekräftig genug.
Wenn Du ein Objekt in eine Textdatei serialisieren willst, dann nimmst Du dafür entweder den XmlSerializer oder den SoapFormatter - deren Dokumentation findest Du hier:
http://msdn.microsoft.com/de-de/library/system.runti…
bzw. hier:
http://msdn.microsoft.com/de-de/library/system.xml.s…

Gruß,
Martin

Erstmal Danke für die schnelle Antwort.
Ich denke mit dem Soapformater und der Methode ToString müsste es gehen. Weiß aber nicht wirklich wie ich die Anwende. Könntest du evtl. ein Beispiel Snippet posten?

Hallo!
Der SoapFormatter wird genauso eingesetzt wie der BinaryFormatter in Deinem ersten Stück Code. Also nicht mit ToString(), sondern über Serialize() und Deserialize(), wie Du’s auch mit dem BinarySerializer bereits gemacht hast.
Nach der Änderung auf den SoapFormatter hast Du bereits Dein Beispiel.
Die entstehende XML-Datei kannst Du dann schon im Texteditor öffnen und ggf. verändern (auf korrekte XML-Struktur achten!).
Bitte lies’ Dir doch einfach mal die Doku auf MSDN dazu durch, dort gibt es i.d.R. auch immer Beispielcode.

Gruß,
Martin