Laden...

Welche Klassenstruktur für binäre Serialisierung

Erstellt von ThomasSch vor 13 Jahren Letzter Beitrag vor 13 Jahren 2.314 Views
T
ThomasSch Themenstarter:in
4 Beiträge seit 2011
vor 13 Jahren
Welche Klassenstruktur für binäre Serialisierung

Hallo,

ich möchte eine Anwendung erstellen, die u.a. Kontakte und spezielle vererbte Varianten davon erstellen, bearbeiten und löschen, Historieeinträge erzeugen und weitere Einstellungen, die dann nur einmal vorhanden sind, speichern kann. Das ganze sollte per binärer Serialisierung in einer Datei gespeichert werden.

Nun meine Frage(n), kann man die verschiedenen Objekte/Listen von Objekten der Klassen in eine Datei speichern? Oder macht es Sinn, eine "übergeordnete Klasse" wie z.B. Userprofil zu erstellen, in der alle anderen Klassen verschachtelt sind?

Für Hinweise und Meinungen auch zu ähnlichen Beispielen im Netz wäre ich sehr dankbar.

Thomas

49.485 Beiträge seit 2005
vor 13 Jahren

Hallo ThomasSch,

Nun meine Frage(n), kann man die verschiedenen Objekte/Listen von Objekten der Klassen in eine Datei speichern? Oder macht es Sinn, eine "übergeordnete Klasse" wie z.B. Userprofil zu erstellen, in der alle anderen Klassen verschachtelt sind?

die beiden Möglichkeiten sind in meinen Augen als gleichberechtigt anzusehen. Du kannst dir also aussuchen, was dir besser gefällt.

herbivore

1.044 Beiträge seit 2008
vor 13 Jahren

Hallo ThomasSch,

beim Serialisieren/Deserialisieren hast du das Problem, dass die Abhänigkeiten(Instanzen) nicht wieder so einfach deserialisiert werden können. Was du tust, ist eine "krasse" Umgestaltung des Codes. Du zwingst den Code in einer gewissen Art und Weise sich anders zu verhalten. Das ist nicht gut. Ich würde dir raten, eine Datenbank oder ein anderes Speicherformat zu wählen.

Empfehlen kann ich dir das Lounge Repository. Siehe auch Tiefes Kopieren belibiger Objektnetze.

zero_x

2.760 Beiträge seit 2006
vor 13 Jahren

Ich würde dir da auch eher zu einem embedded DBMS raten. Das kannst du dann mit einem beliebigen kompatiblen O/R Mapper benutzen.

T
ThomasSch Themenstarter:in
4 Beiträge seit 2011
vor 13 Jahren

Hallo,

danke für eure Antworten.

Da ich noch etwas unerfahren mit der Thematik bin, suche ich ein oder mehrere Beispiele für beide Versionen der Klassenstruktur, an denen ich mich orientieren könnte.

Meistens findet man Beispiele, in denen mit Hilfe einer Klasse bestimmte Programmierverfahren gezeigt werden. Aber das Serialisieren von mehreren Objekten innerhalb einer Klasse, so wie ich es beschrieben hatte, dazu habe ich noch nichts gefunden. Erst recht nicht zu dem speziellen Fall - eine Intanz einer Oberklasse (Userprofil) und die enthält verschiedene andere Klassen.

Ich will nicht ausschließen, das mir bisher nur nicht die richtigen Suchbegriffe eingefallen sind. Vielleicht könntet ihr mich dazu nochmal auf den richtigen Weg führen.

Übrigens habe ich eure Hinweise zu anderen Wegen nicht überlesen. Aber ich befürchte, dass das mich noch etwas überfordert.

Gruß Thomas

49.485 Beiträge seit 2005
vor 13 Jahren

Hallo ThomasSch,

ich wüsste nicht, warum es keine Beispiele geben sollte. Ich habe auch keine Ahnung, was dich an den Beispielen, die du ohne Zweifel gefunden haben wirst, stört. Da müsstest du schon konkreter werden. Zum Beispiel warum du glaubst, dass eine Liste zu serialisieren sich davon unterscheiden könnte, ein normales Objekt zu serialisieren. Oder dass es einen Unterschied machen könnte eine Oberklasse oder eine Unterklasse zu serialisieren. Dem ist nicht so.

Verliere Trotz dieser meiner Aufforderung [Hinweis] Wie poste ich richtig? Punkt 1.1.1 und 1.1 nicht aus dem Blick.

Warum willst du überhaupt serialiseren? Deine Beschreibung des Szenarios klingt mir mehr nach [Tutorial] Das neue Konfigurationsmodell im .NET Framework 2.0.

herbivore

T
ThomasSch Themenstarter:in
4 Beiträge seit 2011
vor 13 Jahren

Hallo herbivore,

wau - ab wann sitzt Du denn vorm Bildschirm?

Aber zurück zum Thema. Vielleicht habe ich mich ein wenig ungenau ausgedrückt.

Der Gedanke mit dem Userprofil entspringt daher, dass ich gedacht habe, dass es leichter oder besser gesagt überhaupt nur über ein Objekt bzw. eine Liste/Collection so realisierbar ist. Ich wußte nicht und hatte darüber auch nichts konkretes gefunden, wie man mehrere Collections (bei mir Listen von Kontakten, von Historieeinträgen, von Videoquellen oder auch von Steuerungseinträgen) in einer binären Datei speichert.

Außerdem könnte ich aufgrund des Fakts, dass alle Daten in einer Datei sind, sie ggf. leichter exportieren und auf einem anderen PC importieren.

Gruß Thomas

49.485 Beiträge seit 2005
vor 13 Jahren

Hallo ThomasSch,

man kann beliebig viele Objekte binär in eine Datei (de)serialisieren indem man immer denselben Stream benutzt.

herbivore

T
ThomasSch Themenstarter:in
4 Beiträge seit 2011
vor 13 Jahren

Hallo herbivore,

ich glaube jetzt habe ich es kapiert.

Ich kann mehrere Objekte verschiedenen Typs auch eben Listen in einen Stream schreiben und auch wieder auslesen.

Ich muß nur dann nach dem FIFO-Prinzip arbeiten. So würde ich auch keine "Oberklasse" benötigen.

Danke für die geduldigen Denkanstöße.

Gruß Thomas

699 Beiträge seit 2007
vor 13 Jahren

Hallo ThomasSch,

ich glaube jetzt habe ich es kapiert.

Das hätte man leicht durch das durcharbeiten eines guten Buches heraus gefunden Binäre Serialisierung.
Soll jetzt nicht negativ wirken, aber so ganz ohne Lektüre wird das schwer, da die rechten Wege zu finden.

Grüße Stephan