Problème desérialisation

[Résolu]
Signaler
Messages postés
125
Date d'inscription
mercredi 15 novembre 2000
Statut
Membre
Dernière intervention
2 mars 2006
-
Messages postés
125
Date d'inscription
mercredi 15 novembre 2000
Statut
Membre
Dernière intervention
2 mars 2006
-
Bonjour à tous,
j'ai encore une fois un petit problème cette fois-ci au niveau d'une deserialisation, je m'explique :
j'ai une classe colis, j'aimerai effectuer une sauvegarde de cet objet dans un fichier, donc pour cela j'ai crée une classe outil avec comme méthode de classe, serialiser et deserialiser, comme ceci :

public
static void Serialisation(Object o)
{
FileStream fs = new FileStream("aa", FileMode.OpenOrCreate);
BinaryFormatter sf = new BinaryFormatter();
sf.Serialize(fs, o);
fs.Close();
}


public static Object Deserialisation ()
{
FileStream fs = new FileStream("aa", FileMode.Open);
BinaryFormatter sf = new BinaryFormatter();
Object o = sf.Deserialize(fs);
fs.Close();
return o;

}

Donc quand je crée mon objet je sérialise il me crée bien un fichier mais quand je le désérialise comme ceci, cela m'affiche une erreur impossible de convertir le type Object en colis.
colis ac = outil.Deserialisation();

Je ne sais pas comment faire.
Merci d'avance !



Kbitnik

8 réponses

Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
36
normal : colis ac = (colis)outil.Deserialisation();

C# ne fait de conversion implicite.

Sébastien FERRAND
[MVP Visual C#]
Messages postés
125
Date d'inscription
mercredi 15 novembre 2000
Statut
Membre
Dernière intervention
2 mars 2006

Ah ok, et donc ce que je faisais avec SoapFormatter, ça aurait fonctionné ?



Kbitnik
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
36
je n'ai pas vu ce que tu faisais avec SoapFormatter... sorry

Sébastien FERRAND
[MVP Visual C#]
Messages postés
125
Date d'inscription
mercredi 15 novembre 2000
Statut
Membre
Dernière intervention
2 mars 2006

Nan mais si au lieu d'utiliser le binaryformatter, j'aurai utilisé le SoapFormatter avec le xml, ça fonctionnerait ?


Kbitnik
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
36
oui :)

Sébastien FERRAND
[MVP Visual C#]
Messages postés
125
Date d'inscription
mercredi 15 novembre 2000
Statut
Membre
Dernière intervention
2 mars 2006

ah, ok et une derniere chose si ça te dérange pas, en faite je veux sauvegarder un objet par jour pour 3 semaines, et quand je dépasse 3 semaines je dépasse l'objet le plus vieux et ajoute le nouvel objet. Donc j'ai 2 questions, peut-on sérialiser un tableau dynamique d'objets ? et la seconde est comment fait on pour désérialiser plusieurs objets d'un fichier ?

Je suis désolé, mais j'ai jamais trop touché la sérialisation, c'est pour ça que je suis un peu perdu.



Kbitnik
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
36
tu peux sérialiser une ArrayList... et si tu es en .net2, une List<>

Sébastien FERRAND
[MVP Visual C#]
Messages postés
125
Date d'inscription
mercredi 15 novembre 2000
Statut
Membre
Dernière intervention
2 mars 2006

Merci beaucoup sebmafate !



Kbitnik