using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
// Beispielobjekt, was geladen und gespeichert werden soll
// wichtig ist hier die Angabe von [Serializable]
[Serializable]
class Viereck
{
private int _a;
private int _b;
private string _Name;
public Viereck(int a, int b, string Name)
{
_a = a;
_b = b;
_Name = Name;
}
public void Print()
{
int A = _a * _b;
Console.WriteLine("{3}: {0} x {1} = {2}", _a, _b, A, _Name);
}
}
// Objekt serialisiert speichern
private void btnSave_Click(object sender, EventArgs e)
{
// Objekt anlegen
Viereck V = new Viereck(2, 4, "kleines Viereck");
// Stream öffnen
FileStream fsW = new FileStream("c:\\viereck.dat", FileMode.Create);
// Objekt binär serialisieren
BinaryFormatter bf = new BinaryFormatter();
bf.Serialize(fsW, V);
// Stream schließen
fsW.Flush();
fsW.Close();
}
// Objekt laden und deserialisieren
private void btnLoad_Click(object sender, EventArgs e)
{
// Stream öffnen
FileStream fsR = new FileStream("c:\\viereck.dat", FileMode.Open);
// Objekt deserialisieren
BinaryFormatter bf = new BinaryFormatter();
Object o = bf.Deserialize(fsR);
Viereck V_neu = o as Viereck;
// wenn die Deserialisierung funktioniert hat
// Testdaten ausgeben (Print())
if (V_neu != null)
{
V_neu.Print();
}
// Stream schließen
fsR.Close();
}