PP_beTheToolSmith
Würden Sie gerne auf diese Nachricht reagieren? Erstellen Sie einen Account in wenigen Klicks oder loggen Sie sich ein, um fortzufahren.

Kleine Erfolge

2 verfasser

Nach unten

Kleine Erfolge Empty Kleine Erfolge

Beitrag von ahertel Di Nov 13, 2012 7:57 am

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 Wink

ahertel

Anzahl der Beiträge : 507
Anmeldedatum : 25.10.12

Nach oben Nach unten

Kleine Erfolge Empty Re: Kleine Erfolge

Beitrag von ahertel Di Nov 13, 2012 8:06 am

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

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 Smile

ahertel

Anzahl der Beiträge : 507
Anmeldedatum : 25.10.12

Nach oben Nach unten

Kleine Erfolge Empty Re: Kleine Erfolge

Beitrag von ahertel Mi Nov 14, 2012 12:58 am

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.


ahertel

Anzahl der Beiträge : 507
Anmeldedatum : 25.10.12

Nach oben Nach unten

Kleine Erfolge Empty Re: Kleine Erfolge

Beitrag von ahertel Do Nov 15, 2012 6:58 am

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)

ahertel

Anzahl der Beiträge : 507
Anmeldedatum : 25.10.12

Nach oben Nach unten

Kleine Erfolge Empty Re: Kleine Erfolge

Beitrag von ahertel So Nov 18, 2012 9:59 am

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 Smile


ahertel

Anzahl der Beiträge : 507
Anmeldedatum : 25.10.12

Nach oben Nach unten

Kleine Erfolge Empty Re: Kleine Erfolge

Beitrag von Maxim Babinski Di Nov 20, 2012 1:42 am

Serialisierung bei selbstverweis

Maxim Babinski

Anzahl der Beiträge : 69
Anmeldedatum : 24.10.12

Nach oben Nach unten

Kleine Erfolge Empty Re: Kleine Erfolge

Beitrag von Gesponserte Inhalte


Gesponserte Inhalte


Nach oben Nach unten

Nach oben


 
Befugnisse in diesem Forum
Sie können in diesem Forum nicht antworten