Problème de sérialisation

Résolu
cs_emmanuel9 Messages postés 903 Date d'inscription mercredi 23 février 2005 Statut Membre Dernière intervention 16 juin 2010 - 26 déc. 2005 à 19:03
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 - 29 déc. 2005 à 12:04
Bonjour à tous,

J'ai une instance d'une classe Donnees qui contient des ArrayList de divers objets et notamment une arraylist d objet Personne.

Et je voudrais serialiser cette instance de Donnees pour la deserialiser par la suite. Le problème c'est que dans mon Arraylist de Personne je voudrais pas serialiser toutes les personnes mais juste celle qui ont le paramètre ancien = true ;

Comment pourrais je faire ca ?

Par avance, merci.

7 réponses

cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
26 déc. 2005 à 20:05
Salut,

"Sérialisation + problème + Au secourssss" => "Problème de sérialisation"
Beaucoup moins repoussant comme titre...

Pour ton problème il te suffit de faire une sérialisation manuelle.

/*
coq
MVP Visual C#
*/
3
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
27 déc. 2005 à 19:38
Ah non, j'ai juste parler de personnaliser la sérialisation :-)

Dans ton cas il suffirat de remplacer ton ArrayList par une classe de collection fortement typée implémentant ISerializable afin de filtrer les Personnes sauvegardées ou non :

Basiquement ça donne quelquechose de ce genre :

[Serializable()]
public class PersonnesCollection : CollectionBase, ISerializable
{
public PersonnesCollection()
: base()
{
}


public int Add(Personne pers)
{
return base.InnerList.Add(pers);
}


#region Sérialisation personnalisée


protected PersonnesCollection(SerializationInfo info, StreamingContext context)
{
Type typeOfPersonne = typeof(Personne);
for(int i=0; i


public void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context)
{
int numPersonne = 0;
for ( int i=0; i


#endregion Sérialisation personnalisée
}

/*
coq
MVP Visual C#
*/
3
cs_emmanuel9 Messages postés 903 Date d'inscription mercredi 23 février 2005 Statut Membre Dernière intervention 16 juin 2010 2
27 déc. 2005 à 09:44
c'est à dire ? comment faire çà ?
0
cs_emmanuel9 Messages postés 903 Date d'inscription mercredi 23 février 2005 Statut Membre Dernière intervention 16 juin 2010 2
27 déc. 2005 à 10:13
c'est à dire que je construise moi même mes classes qui vont me permettre de d'écrire mes objets dans un fichier, en xml par exemple ? Je pense que ca peut se faire mais ca risque d'être très long alors que la serialisation est un processus qui ne prend que quelque ligne, ca serait dommage de s'en passer.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_emmanuel9 Messages postés 903 Date d'inscription mercredi 23 février 2005 Statut Membre Dernière intervention 16 juin 2010 2
28 déc. 2005 à 09:44
ok, merci bien je vais faire ca
0
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
29 déc. 2005 à 12:02
Très intéressant ta réponse Coq.
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
29 déc. 2005 à 12:04
Marchi

/*
coq
MVP Visual C#
*/
0
Rejoignez-nous