Hallo!
Die Klasse
File ist eine statische Klasse, daher kannst Du keine Instanz von ihr erstellen. Sie stellt nur Methoden bereit, die aber alle direkt über die Klasse (den Klassennamen) aufgerufen werden.
Um einen FileStream zu erhalten, kannst Du die ebenfalls statische Methode
File.Create zum Erzeugen einer neuen Datei bzw.
File.Open oder
File.OpenRead zum öffnen einer bestehenden Datei (bei OpenRead nur zum Lesen).
Dein Quelltext wird dadurch eigentlich noch kürzer. Ich würde übrigens möglichst mit dem using-Statement arbeiten, weil Du dann direkt auch einen Resourcenschutz mit drin hast:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| public void SerializeNow() { ClassToSerialize c=new ClassToSerialize(); BinaryFormatter b=new BinaryFormatter(); using(Stream s = File.Create("temp.dat")) b.Serialize(s,c); } public void DeSerializeNow() { ClassToSerialize c=new ClassToSerialize(); BinaryFormatter b=new BinaryFormatter(); using(Stream s = File.OpenRead("temp.dat")) c=(ClassToSerialize)b.Deserialize(s); Console.WriteLine(c.name); } |
Achte auch drauf, dass die Angabe eines Dateinamens ohne Pfad schief gehen kann.
Grüße
Christian
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".