Laden...

Hashtable mit selbstdef. Klasse in SerializeObject übetragen und abspeichern?

Erstellt von Mahdi vor 18 Jahren Letzter Beitrag vor 18 Jahren 1.597 Views
M
Mahdi Themenstarter:in
19 Beiträge seit 2004
vor 18 Jahren
Hashtable mit selbstdef. Klasse in SerializeObject übetragen und abspeichern?

Also gut Abend allerseits,

Ich habe folgendes Problem ich habe eine Klasse (SerializeObjectBase) und eine weitere Klasse (Spieler). Die Klasse Spieler hat verschiedene Eigenschaften (int Tipp1, int Tipp2, int Tipp3, string Name). Ich habe nun in einer 3. Klasse einem Dialog eine IDictionary Hashtable, in der sich beliebig viele Instanzen von Spielern befinden, als key ist ihr Name gesetzt.
Nun will ich eben diese IDictionary Hashtable mit den Instanzen der selbstdefinierten Spieler-Klasse in die SerializeObjectBase-Klasse als Eigenschaft überweisen. Wie mache ich das?

Ich will dann anschließend eben diese SerializeObject in eine .bin - Datei speichern, aus der ich jederzeit wieder auslesen kann.

**********************

Mfg. Mahdi


Der Bringer wird uns geben, was wir verlangen. Wir müssen nur lernen unser Verlangen zu kontrollieren und wir werden bekommen, was wir wollen.

Mahdi

4.221 Beiträge seit 2005
vor 18 Jahren

Original von Mahdi

Bitte um schnelle Antwort,

Solche Kommentare verleiten mich eher dazu solche posts zu ignorieren 😜

Wie seht ihr so was ? 🤔

Früher war ich unentschlossen, heute bin ich mir da nicht mehr so sicher...

P
939 Beiträge seit 2003
vor 18 Jahren

Ich sehe das Problem nicht so ganz.
Wie hast du es denn bisher versucht? Und was ist dabei schiefgelaufen?

M
Mahdi Themenstarter:in
19 Beiträge seit 2004
vor 18 Jahren

Naja wie gesagt ich habe versuche die Hashtable in dem Dialog (gefüllt mit Instanzen einer selbstdefinierten Klasse - Spieler) als Eingenschaft einer SerializeObjectBase - Klasse zu übertragen.

D.h. ich habe bei der SerializeObjectBase-Klasse die Eigenschaft wie folgt definiert:


(...) 
IDictionary _spieler = new Hashtable();
(...)
public IDictionary Spieler
{
     set { _spieler = value; }
     get {  return _spieler;  }
}

Dann habe ich aus dem Dialog heraus einfach eine Instanz von diesem SerializeObject erstellt und ihm die Eigenschaft(Spieler) aus der Hashtable des Dialoges übergeben um dann dieses SerializeObject in eine .bin Datei zu speichern.

Das klappt auch alles, wenn sich in der Hashtable Objekte wie strings oder ints befinden. Jedoch sobald eine selbstdefinierte Klasse (Spieler) darin ist, dann hängt er sich bei dem übertragen weg.

Bitte helfe mir. Ich frage selten um Hilfe, meist lese ich tagelang Referenzen, drum vergib mir meine Schreibart ich habe da wenig Erfahrung.

Mfg. Mahdi


Der Bringer wird uns geben, was wir verlangen. Wir müssen nur lernen unser Verlangen zu kontrollieren und wir werden bekommen, was wir wollen.

Mahdi

P
939 Beiträge seit 2003
vor 18 Jahren

Alle zu serialisierenden Typen müssen das Serializable-Attribute gesetzt haben (oder das NonSerialized-Attribute).

[Serializable]
public class Spieler {
}

Alternativ kann auch das ISerializable-Interface implementiert werden. Das ist gedacht für benutzerdefinierte Serialisierung.

Gruss
Pulpapex

M
Mahdi Themenstarter:in
19 Beiträge seit 2004
vor 18 Jahren

Sehr vielen Dank, 😁

Es Funktioniert 👍

Super!

Mfg. Mahdi


Der Bringer wird uns geben, was wir verlangen. Wir müssen nur lernen unser Verlangen zu kontrollieren und wir werden bekommen, was wir wollen.

Mahdi

1.549 Beiträge seit 2004
vor 18 Jahren

Original von Programmierhans

Original von Mahdi

Bitte um schnelle Antwort,

Solche Kommentare verleiten mich eher dazu solche posts zu ignorieren 😜

Wie seht ihr so was ? 🤔

Also ich ignoriere normalerweise solche Bemerkungen und denke nur daran:

Eile mit Weile

Wir Arbeiten eigendlich nicht wir nehmen nur das geld

49.485 Beiträge seit 2005
vor 18 Jahren

Hallo zusammen,

Wenn jemand schreibt: "Ich habe am Montag den Projektabgabetermin und gerate so langsam in Panik, wenn ich das Problem nicht bald lösen kann. Würde mich deshalb über eine schnelle Antwort freuen." ist das für mich ok. Wenn es einfach nur schnell gehen soll, ohne das ich weiß warum, stößt mich das auch eher ab.

Auf der anderen Seite beeinflußen solche Aussagen nicht meine Antwortzeit (und darum geht es ja). Ich lese die Beiträge, wann ich sie eben gerade lese. Jedenfalls lese ich sie nicht früher, wenn drinsteht, dass es schnell gehen soll, denn das weiß ich ja noch nicht 🙂 Und wenn ich einen Beitrag lese, auf den ich eine Antwort weiß, dann antworte ich sofort (egal, od drinsteht, dass es schnell gehen soll oder nicht). Ich wüßte auch nicht, warum ich mit der Antwort warten sollte.

Ich sehe also kaum eine Chance, dass jemand früher eine Antwort bekommt, wenn er scheibt, dass er sie früher will. Dagehen gibt es eine gewisse Chance, dass er sie später bekommt - siehe Reaktion von Programmierhans.

herbivore