Captain_Bomber
Messages postés36Date d'inscriptionlundi 4 septembre 2006StatutMembreDernière intervention 4 mai 2007
-
16 janv. 2007 à 13:20
cs_Bidou
Messages postés5487Date d'inscriptiondimanche 4 août 2002StatutMembreDernière intervention20 juin 2013
-
16 janv. 2007 à 21:50
Bonjour à tous,
Je cherche à partager une liste de noms entre 2 applications client-serveur. La liste évolue et doit donc être retransmise plusieurs fois.
Cette liste est stockée dans un fichier .txt. Le prog lis le fichier, place chaque nom dans un ArrayList, sérialise l'ArrayList avec un
BinaryFormatter sur le NetworkStream du client.
Le client place alors la chaine reçue dans un fichier, et désérialise l'ArrayLit comme ceci :
DataList = (ArrayList) formatter.Deserialize(fs);
fs étant un FileStream pointant sur le fichier
N'ayant trouvé que peu d'info sur catte méthode, je ne sait absolument pas si mon code est juste (d'ailleurs ca ne marche pas).
Quelqu'un pourrait-il m'expliquer la façon exacte de faire?
Est-ce bien l'ArrayList qu'il faut sérialiser??
Captain_Bomber
Messages postés36Date d'inscriptionlundi 4 septembre 2006StatutMembreDernière intervention 4 mai 2007 16 janv. 2007 à 14:07
Merci... en fait, la sérialisation ne pose pas trop de problème, et le client reçoit bien la chaine de caractères cryptés.
Mais je n'arrive pas a reconstituer un ArrayList avec.
J'ai essyé en créant une classe sérializable dérivée de ListBox (la liste de noms est dans une ListeBox),
je sérialise ma calsse qui contient la meme chose que la liste, et je l'envois sur le Stream client.
Le client possède lui aussi cette classe et la reconstitue en désérialisant la chaine reçue.
Cela devrait marcher comme ça? non
Je dois juste vérifier la mise en forme de la chaine pour que le client la reconnaisse comme telle....
cs_Bidou
Messages postés5487Date d'inscriptiondimanche 4 août 2002StatutMembreDernière intervention20 juin 201361 16 janv. 2007 à 21:50
Il me semble que j'avais déjà rencontré ce problème une fois, mais impossible de me rappeler quelle en était la cause.
Y'a peut-être une histoire de namespace qui doit être identique dans les deux cas et qui ne l'est pas ou les classes/type ont pas le même nom, quelque chose dans ce genre là...
Je sais que c'est vague, mais c'est tout ce que j'arrive à me souvenir
Essayes de faire quelques testes en local : une application qui serialize un objet tout bête dans un fichier, une autre application qui déserialize ce fichier et relis l'object.