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 ;} } }