Eigene Klassen mit dem BinaryWriter serialisieren
Frank Dzaebel, erstellt am: 29.9.2005, zuletzt geändert: 29.9.2005
Kategorie:Serialisierung, .NET-Version:1.1/2.0
Binäre Serialisierer persistieren zwar in ein kryptisches Format, aber ihre Performanz und die geringe Größe der Zwischen-Objekte lässt sie in vielen Szenarien sinnvoll zum Einsatz kommen. Hier ein Beispiel:
#region Binär
string dateiPfadBinär = "personen.dat";
public void PersonenSchreibenBinär(Person[] personen)
{
BinaryWriter binWriter = new BinaryWriter(File.OpenWrite(dateiPfadBinär));
binWriter.Write(personen.LongLength);
foreach (Person person in personen)
{
binWriter.Write(person.Name);
binWriter.Write(person.Alter);
}
binWriter.Close();
}
public Person[] PersonenEinlesenBinär()
{
BinaryReader binReader = new BinaryReader(File.OpenRead(dateiPfadBinär));
long count = binReader.ReadInt64();
Person[] personen = new Person[count];
for (long i=0; i<personen.LongLength; i++)
personen[i] = new Person(binReader.ReadString(), binReader.ReadInt32());
binReader.Close(); return personen;
}
#endregion
class Person
{
public Person(string name, int alter)
{
Name=name; Alter=alter;
}
private string name;
public string Name
{
get{return name;}
set{name=value ;}
}
private int alter;
public int Alter
{
get{return alter;}
set{alter=value ;}
}
}