Kleine Erfolge
2 verfasser
Seite 1 von 1
Kleine Erfolge
Der Thread ist gedacht um codefragmente die uns später nützlich sind nach dem Test hier kurz zu posten und zu erläutern (Vermutlich auch interessant für alle anderen die sich mal damit beschäftigen wollen. Wir sind ja schließlich zum Lernen hier
ahertel- Anzahl der Beiträge : 507
Anmeldedatum : 25.10.12
Re: Kleine Erfolge
Hier ein paar Codeschnipsel. Basierend auf einer simplen Klasse "Charakter", die ich nicht mitposte. Sie ist public, und besteht nur aus den beiden Eigenschaften "Name" und "Age". Dieser Code wird auf Knopfdruck ausgeführt (kann aber auch sonstwie verwendet werden).
Ein Charakter wird erstellt und mit Daten gefüttert. Anschließend holen wir uns ein eigenes Verzeichnis in AppData (Das steht auf unseren ToDos, um das Arbeitsverzeichnis zu bekommen, in dem wir zur Laufzeit arbeiten)
Falls das Verzeichnis noch nicht existiert, wird es kurzerhand erstellt.
Danach kommt der Kernpunkt: Wir erstellen einen XML Serializer für unseren Datentypen (Charakter) und schreiben es per FileStream in unser temp verzeichnis
Fragen immer an mich
Ein Charakter wird erstellt und mit Daten gefüttert. Anschließend holen wir uns ein eigenes Verzeichnis in AppData (Das steht auf unseren ToDos, um das Arbeitsverzeichnis zu bekommen, in dem wir zur Laufzeit arbeiten)
Falls das Verzeichnis noch nicht existiert, wird es kurzerhand erstellt.
Danach kommt der Kernpunkt: Wir erstellen einen XML Serializer für unseren Datentypen (Charakter) und schreiben es per FileStream in unser temp verzeichnis
- Code:
Charakter newChar = new Charakter(); //New Character is being created...
newChar.Name = "Mike Rotch"; //...named...
newChar.Age = 25; //...aged
String tmp_path = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "Toolsmith\\TS_TMPDIR"); //Get our Tool's Temp path in AppData
if (!Directory.Exists(tmp_path)) Directory.CreateDirectory(tmp_path); //Create Toolsmith Temp Dir if it does not exist
XmlSerializer serializer = new XmlSerializer(typeof(Charakter)); //Create Character Serializer
FileStream stream = new FileStream(tmp_path+"\\TestCharakter.xml", FileMode.Create); //Create Filestream for test file
serializer.Serialize(stream, newChar); //Serialize it!
stream.Close(); //Close stream
Fragen immer an mich
ahertel- Anzahl der Beiträge : 507
Anmeldedatum : 25.10.12
Re: Kleine Erfolge
Im SVN unter
\Subgruppen\Programming\HilfsKlassen
habe ich mal den Ersten Entwurf für eine FileSystemHelper Klasse eingecheckt, mit dem wir (hoffentlich) auf eine sehr einfache Art und Weise unsere Objekte in XML Serialisieren und das Arbeitsverzeichnis erstellen können.
Weitere funktionen die darin vielleicht Sinn machen könnten wäre zB schön abgekapselte Zip funktionalität fürs Speichern.
Folgende Dinge sind mir aufgefallen:
1. Beim Serialisieren müssen wir auf Referenz-loops aufpassen. Wenn ein Objekt auf sich selbst eine Referenz enthält (egal ob direkt oder indirekt über ein anderes Objekt), gibt es eine exception zur Laufzeit. Das schlägt sich in unserem Konzept für Listen/Baum Datentypen (zB Dialoge) nieder.
2. Wenn man ein Array von Objekten anlegt und mit der Serialize Funktion serialisiert, funktioniert das schön und Problemlos. Ich vermute (und hoffe) dass das mit Listen oder Collections genauso funktioniert.
\Subgruppen\Programming\HilfsKlassen
habe ich mal den Ersten Entwurf für eine FileSystemHelper Klasse eingecheckt, mit dem wir (hoffentlich) auf eine sehr einfache Art und Weise unsere Objekte in XML Serialisieren und das Arbeitsverzeichnis erstellen können.
Weitere funktionen die darin vielleicht Sinn machen könnten wäre zB schön abgekapselte Zip funktionalität fürs Speichern.
Folgende Dinge sind mir aufgefallen:
1. Beim Serialisieren müssen wir auf Referenz-loops aufpassen. Wenn ein Objekt auf sich selbst eine Referenz enthält (egal ob direkt oder indirekt über ein anderes Objekt), gibt es eine exception zur Laufzeit. Das schlägt sich in unserem Konzept für Listen/Baum Datentypen (zB Dialoge) nieder.
2. Wenn man ein Array von Objekten anlegt und mit der Serialize Funktion serialisiert, funktioniert das schön und Problemlos. Ich vermute (und hoffe) dass das mit Listen oder Collections genauso funktioniert.
ahertel- Anzahl der Beiträge : 507
Anmeldedatum : 25.10.12
Re: Kleine Erfolge
Habe im SVN unter "Grobschemata" mal ein Teilschema für den DataProvider skizziert. ich könnte mir vorstellen dass diese Funktionen ausreichen um das Charakter-handling für unsere Software zu gewährleisten.
(open for discussion)
(open for discussion)
ahertel- Anzahl der Beiträge : 507
Anmeldedatum : 25.10.12
Re: Kleine Erfolge
Jetzt: Sonderangebot im SVN:
Erste Idee zum DataProvider als .cs (Programmiererverzeichnis unter HilfsKlassen)
Hab nur mal grob angerissen, wie man auf Charaktere zugreifen könnte. Hab auch TODOs reingeschrieben, was in den funktionen noch gemacht werden muss, aber der Rest is soweit theoretisch funktional
Erste Idee zum DataProvider als .cs (Programmiererverzeichnis unter HilfsKlassen)
Hab nur mal grob angerissen, wie man auf Charaktere zugreifen könnte. Hab auch TODOs reingeschrieben, was in den funktionen noch gemacht werden muss, aber der Rest is soweit theoretisch funktional
ahertel- Anzahl der Beiträge : 507
Anmeldedatum : 25.10.12
Re: Kleine Erfolge
Serialisierung bei selbstverweis
Maxim Babinski- Anzahl der Beiträge : 69
Anmeldedatum : 24.10.12
Seite 1 von 1
Befugnisse in diesem Forum
Sie können in diesem Forum nicht antworten