-
02.05.2012, 23:36 #1
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:
-
03.05.2012, 10:49 #2
- Registriert seit
- 12.12.2011
- Beiträge
- 39
Thanked 24 Times in 16 PostsGanz 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
-
C# Klassen- und Instanzmethoden?
Von Gast78236 im Forum .NetAntworten: 4Letzter Beitrag: 18.01.2014, 02:30 -
definition von Klassen , Objekten und etc.?
Von Silidor im Forum JavaAntworten: 32Letzter Beitrag: 18.06.2013, 22:46 -
[MW3] Eure Klassen
Von BMG im Forum Call of DutyAntworten: 4Letzter Beitrag: 29.05.2012, 16:56 -
Alpa Gun - Meister aller Klassen.
Von OneWorld im Forum Musik ♫Antworten: 4Letzter Beitrag: 28.02.2012, 21:34
Diese Seite nutzt Cookies, um das Nutzererlebnis zu verbessern. Klicken Sie hier, um das Cookie-Tracking zu deaktivieren.