0

Einfache XML-Serialisierung in C#

C# XML SerialisierungHeute möchte ich euch zeigen, wie man eine XML-Serialisierung in C# durchführen kann. Serialisierung selbst, bedeutet, dass man ein Objekt in eine andere, transportable Form umwandelt. Mittels XML-Serialisierung ist es uns zum Beispiel nötig, ein Objekt einer Klasse in Form einer XML-Datei abzuspeichern und auch wieder herzustellen.
Das kann Sinn machen, wenn man ein Objekt in seinem Zustand nach dem Schließen und erneuten Öffnen einer Anwendung wiederherstellen oder wenn man ein Objekt beispielsweise per HTTP übertragen möchte.

Für unser Beispiel habe ich folgende Klasse Blog erstellt:

public class Blog
{
    public string User { get; set; }
    public string Pass { get; set; }
    public string Subdomain { get; set; }
    public string BaseUrl { get; set; }
}

Die Methode zum Serialisieren sieht wie folgt aus:

public void SerializeBlogToXML(Blog blogObj)
{
    //Erstelle einen XML-Serialisierer für Objekte vom Typ Blog
    XmlSerializer serializer = new XmlSerializer(typeof(Blog));

    //Erstelle einen FileStream auf die Datei, in die unserer
    //Blog-Objekt in XML-Form gespeichert werden soll.
    FileStream file = new FileStream(Application.StartupPath
                                     + "\\blog.xml",
                                     FileMode.Create);
    //Serialisiere das übergebene Blog-Objekt (blogObj)
    //und schreibe es in den FileStream.
    serializer.Serialize(file, blogObj);

    //Schließe die XML-Datei.
    file.Close();
}

Nicht vergessen die passenden Using-Anweisungen zu schreiben!

using System.Xml.Serialization;
using System.IO;

Ohne diese würde die oben geschriebene Methode SerializeBlogToXML nicht ohne weitere Anpassungen laufen.

Das war es auch schon. Wenn man von meinen Kommentaren absieht, dann reichen ganze 4 Zeilen aus, um ein Objekt als XML-Datei abzuspeichern.

Ein kleines Beispiel zur Verwendung könnte zum Beispiel so aussehen:

private void buttonSerialisieren_Click(object sender, EventArgs e)
{
    //Blog-Objekt erstellen und mit Werten befüllen
    Blog blogObject = new Blog();
    blogObject.User = "maxmustermann";
    blogObject.Pass = "superpasswort";
    blogObject.Url = "www.code-bude.net";

    //Blog-Objekt serialisieren
    SerializeBlogToXML(blogObject);
}

Wenn alles geklappt hat, dürfte sich nun im Ausführungsverzeichnis eures Projektes eine Datei namens Blog.xml befinden. Diese sollte folgenden Inhalt haben:

<?xml version="1.0"?>
<Blog xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <User>maxmustermann</User>
  <Pass>superpasswort</Pass>
  <Url>www.code-bude.net</Url>
</Blog>

Das einzige was jetzt noch fehlt, ist die Konvertierung eines nach XML serialisierten Objekts. Das geht sogar noch ein bisschen leichter, als das umwandeln in’s XML-Format.

public Blog DeserializeXmlToBlog()
{
    XmlSerializer serializer = new XmlSerializer(typeof(Blog));
    FileStream file = new FileStream(Application.StartupPath
                                        + "\\blog.xml",
                                        FileMode.Open);
    //Die Deserialize()-Methode gibt ein Object zurück. => casten!
    Blog blogList = serializer.Deserialize(file) as Blog;
    file.Close();
    return blogList;
}

Zum Abschluss noch mal ein Beispiel, in dem Serialisiert und Deserialisiert wird.

private void buttonSerialisieren_Click(object sender, EventArgs e)
{
    Blog blogObject = new Blog();
    blogObject.User = "maxmustermann";
    blogObject.Pass = "superpasswort";
    blogObject.Url = "www.code-bude.net";

    SerializeBlogToXML(blogObject);
    Blog blogFromXml = DeserializeXmlToBlog();
    MessageBox.Show(blogFromXml.Url);
}

Ich hoffe, ich habe das ganze verständlich genug beschrieben. Solltet ihr dennoch Fragen haben, schreibt mir einfach einen Kommentar.

Wer keine Lust hat, den Code von Hand zu tippen bzw. zu kopieren, der kann sich das Beispiel auch als Visual Studio 2010 Projekt herunterladen.

Viele Grüße,
Raffi

0

Update: MySpace Loader 1.9 released

MySpaceLoader IconSo, neue Artikel gab es ja nun schon etwas länger nicht mehr. Das unter anderem daran, dass ich ganz gut damit beschäftigt war, den MySpace Loader zu überarbeiten. Und nun ist er fertig!

Vielen Dank, an alle Blogleser, die mir beim beheben der Bugs geholfen haben. Besonderer Dank gilt Hannah, die unermüdlich immer und immer wieder diverse Tests von mir ausgeführt hat, um den Fehler zu finden.

Die neue Version findet ihr hier:

MySpace Loader 1.9 Download

Changelog:

  • Bug behoben, der den Download von Songs bei einigen Usern verhinderte
  • Updatebenachrichtigungsdienst überarbeitet

 

English information:
I’ve finished my work on the new MySpaceLoader. The actual version for now is 1.9. In this release I’ve fixed a bug which stopped the download funtionality by some of the MySpaceLoader users. Also I implemented the updatecheck in a better way. 

Changelog:

  • Fixed the bug, which stopped the download functionality by some users
  • Improved the updatecheck/updateservice
54

Projekt: MySpace Loader – ein MySpace Downloader

english flag For english information scroll down please.

Ich habe die Tage mal wieder ein altes Projekt, welches noch zu Zeiten von net-blog.net enstanden ist, herausgekramt. Es geht um den MySpace Loader, welcher jedoch schon seit längerer Zeit nicht mehr funktionsfähig war. Die Betonung liegt auf war.
Nach einigen Stunden “Schönheitskur” und mehrere Operationen “am offenen Herzen” (am Quellcode), läuft er nun wieder.

Mit dem MySpace Loader könnt ihr, wie der Name schon sagt, Musik von MySpace herunterladen. Das Programm ermöglicht das Downloaden von mehrerern Songs auf einmal und kann diese dann auch in verschiedene Formate konvertieren und auf Wunsch mit ID3-Tags versehen. Das ganze ist, wie auch der Cloud Downloader, kostenlos. (Über eine Spende würde ich mich natürlich dennoch freuen.) Den Downloadlink findet ihr weiter unten im Artikel unter dem Youtube-Video.

Features:

  • Lädt jeden Song
  • Konvertiert auf Wunsch nach .mp3, .acc, .wma oder .ogg
  • Kostenlos (im Gegenteil zu z.B. Musicjacker)
  • Schnell, einfach und übersichtlich

MySpace Loader - Screenshot 1  MySpace Loader - Screenshot 2  MySpace Loader - Screenshot 3  MySpace Loader - Screenshot 4

Download: MySpace Loader 1.9

(You have to wait 5 seconds for download. After the 5 seconds click on the button on the upper right.)

 

English information:
The MySpace Loader is a piece of free software, developed and written by myself. With it you can download music from MySpace in less than 3 clicks for free. But that’s not all. The MySpace Loader also can convert your downloaded songs into different file formats like mp3, ogg or acc. If you like, it will automatically tag your songs with ID3-tags. If you want more information, watch the video at this article or write me a comment.
If you like my work, feel free to say thanks with a little donation. 

with best regards/viele Grüße,
Raffi

Du willst helfen? Dann Spende doch einfach. (Für deutsche Nutzer – €).
  
You want to help?
(For non-german users – $/USD)

1

Startmenü für Windows 8 – die Zweite

Stardock Start8 Website ScreenshotVor kurzem habe ich schon einmal darüber geschrieben, wie man in der Windows 8 Consumer Preview das Startmenü “aktivieren” kann. Im letzten Artikel hatte ich euch einen Lösungsansatz mit Hilfe des Programms ViStart 7 gezeigt. Heute möchte ich euch noch einen anderen Weg zeigen, der sich das Programm Start8 der Firma Stardock zu nutze macht.

Start8 ist ebenso wie ViStart kostenlos zu haben, simuliert aber im Gegenteil zu ViStart nicht das klassische Windows 7 Startmenü, sondern setzt sich aus Bestandteilen von Windows 8 zusammen. Wie das aussieht, könnt ihr dem nachfolgenden Screenshot entnehmen.

Windows 8 Startmenü mit Start8

Downloaden könnt ihr Start 8 auf der Webseite von Stardock. Dort müsst ihr jedoch eure E-Mail Adressen angeben, bevor ihr den Download starten könnt. Wer seine E-Mail Adresse lieber für sich behalten möchte, gibt halt eine Phantasie-Adresse an oder nutzt diesen Direktlink hier.

Wie das aussieht, wenn man in die Suche im Start8 etwas eingibt, habe ich euch auch noch mal als Screenshot festgehalten.

Windows 8 Start8

Das war’s dann auch schon wieder. Und, welche Lösung gefällt euch besser? ViStart oder das hier gezeigte Start8? Oder seid ihr auch meiner Meinung und sagt euch “Microsoft wird sich schon was dabei gedacht haben. Ich gewöhne mich um und nutze gar nichts davon.”?

Viele Grüße,
Raffi

1

Visual Studio 11 Express Beta unter Windows 7 installieren

Seit gestern gibt es nicht nur die Consumer Preview von Windows 8 zum Download, sondern auch die Betaversion von Visual Studio 11. Da seitens Microsoft versprochen wird, dass man diese auch parallel zur 2010er Version installieren kann, wollte ich mir gestern also die Beta auf meinem Windows 7 PC installieren.

Nichts ahnend habe ich zur Express-Version gegriffen (denn die bleibt im Gegenteil zu Professional und Ultimate auch später noch kostenlos). Doch dann passierte es (siehe Screenshot).

Visual Studio 11 Express Beta - Windows 7 Fehlermeldung

Die Express Version der Beta lässt sich nicht unter Windows 7 installieren. Abhilfe schafft da momentan nur die Wahl einer anderen Edition (z.B. Professional, Premium oder Ultimate). Schade, aber nicht zu ändern. Zudem kommt noch hinzu, dass wer lesen kann, klar im Vorteil ist, denn scrollt man auf der Microsoft-Website etwas weiter herunter, kann man bei den Anforderungen auch lesen, dass die Express Version als einzige nicht zu Windows 7 kompatibel ist.

Ich hoffe ja immer noch, dass das nur während des Beta-Stadiums so sein wird. Andersherum kann ich Microsoft natürlich auch verstehen. So könnte man die Leute, die sich das Geld für die Professional/Ultimate Version sparen wollen, wenigstens dazu bringen, sich eine Windows 8 Lizenz zu kaufen.
Doch ob das so sinnig ist? Denn die Zielgruppe der Express Version sind meistens Schüler/Studenten, die nur hobbymäßig/unkommerziell entwickeln wollen. Bei denen dürfte auch kein Geld für eine Windows 8 Lizenz zu holen sein. Aber das ist alles rein spekulativ.
Wir werden sehen, wie es kommt. Ich für meinen Teil werde jetzt erst mal fleißig die Beta testen.

Viele Grüße,
Raffi 

Kurzusammenfassung/Lösung:

Die Express Edition der Visual Studio 11 Beta ist nicht kompatibel mit Windows 7. Abhilfe schafft derzeit nur die Nutzung einer “höherwertigen” Edition, wie z.B. die ProfessionalPremium oder Ultimate Edition. (Momentan sind auch diese noch kostenlos.)