1. #1
    Avatar von Sky.NET
    Registriert seit
    26.11.2011
    Beiträge
    2.462
    Thanked 2.718 Times in 1.287 Posts
    Blog Entries
    7

    Standard Ganz easy Klassen als XML speichern

    Wer kennt das nicht? Man hat eine ganze Menge Instanzen einer Klasse, und möchte diese gerne Persistent haben, sprich im Filesystem speichern.
    Dazu kann man dann komplizierte Dinge starten: SQLite benutzen, irgendwas CSV-artiges zusammenbasteln ODER diese Lösung benutzen:

    Folgendes Szenario:
    Ihr habt ein Spiel geschrieben, was mit einem Client-Server-System arbeitet.
    Wenn der Server heruntergefahren wird, soll er alle Spieler logischerweise speichern. Beim hochfahren soll er sie laden.
    Da es hier nur 3 Klassen gibt, die gespeichert werden sollen, nämlich die allgemeinen Settings, Statistiken und die Spielerliste, wäre hier SQLite ein wenig übertrieben. Selbst ne Datei zusammenzubasteln ginge auch, aber wäre viel zu viel Arbeit.

    Die Lösung ist XML-Serialisierung (Beispiel = viele Player-Instanzen in einer List<Player>):

    Hinweis: Die Klasse die ihr serialisieren wollt, muss einen parameterlosen Konstruktor haben und über dem Klassennamen muss [Serializable] stehen!

    Speichern:
    foreach (Player p in _totalplayers)
    {
    XmlSerializer ser = new XmlSerializer(typeof(Player));
    FileStream str = new FileStream("players\" + p.Nick + ".xml", FileMode.Create);
    ser.Serialize(str, p);
    str.Close();
    }


    Laden:
    XmlSerializer ser = new XmlSerializer(typeof(Player));
    foreach (string s in Directory.GetFiles("players"))
    {
    StreamReader sr = new StreamReader(s);
    Player player = (Player)ser.Deserialize(sr);
    sr.Close();
    _totalplayers.Add(player.Nick, player);
    }


    Das Ganze natürlich ohne Errorhandling etc.
    Java:
    Spoiler:

    Lustige Quotes:
    Spoiler:
    Zitat Zitat von Hydra Beitrag anzeigen
    Hier (in Deutschland) kann man keine andere tolle Aktivitäten machen, als zu chillen, shoppen, saufen und Partys feiern xD Ich habe nichts gegen ab und zu mal saufen und Partys feiern, aber das ist doch nicht wirklich das wahre Leben o_o
    Wieso das Internet für die meisten Leute gefährlich ist:
    Zitat Zitat von Silent Beitrag anzeigen
    Ich weiß ja nicht was der Sinn dahinter steckt es heißt immer "security reasons".

  2. #2

    Registriert seit
    12.12.2011
    Beiträge
    39
    Thanked 24 Times in 16 Posts

    Standard Ganz easy Klassen als XML speichern

    Ein Using wäre dort von Vorteil, um die Resourcen wieder freizugeben, ansonsten würd ichs auch so machen.

Ähnliche Themen

  1. C# Klassen- und Instanzmethoden?
    Von Gast78236 im Forum .Net
    Antworten: 4
    Letzter Beitrag: 18.01.2014, 02:30
  2. Antworten: 32
    Letzter Beitrag: 18.06.2013, 22:46
  3. [MW3] Eure Klassen
    Von BMG im Forum Call of Duty
    Antworten: 4
    Letzter Beitrag: 29.05.2012, 16:56
  4. Alpa Gun - Meister aller Klassen.
    Von OneWorld im Forum Musik ♫
    Antworten: 4
    Letzter Beitrag: 28.02.2012, 21:34
Diese Seite nutzt Cookies, um das Nutzererlebnis zu verbessern. Klicken Sie hier, um das Cookie-Tracking zu deaktivieren.