Sérialization

Résolu
cs_RMI Messages postés 305 Date d'inscription vendredi 18 juillet 2003 Statut Membre Dernière intervention 2 août 2010 - 13 mars 2006 à 18:18
cs_RMI Messages postés 305 Date d'inscription vendredi 18 juillet 2003 Statut Membre Dernière intervention 2 août 2010 - 14 mars 2006 à 11:05
Bonjour,



Je cherche à sérializer mon objet SequenceInfo ci-dessous, est ce
possible et comment (je n'arrive pas à implémenter ISerializable ) ?



public class SequenceInfo

{ private Plaque plaque=Plaque.NonDefini;

public TrameInfo[] trameInfos;

public Plaque Plaque {get {return plaque;} set {plaque=value;}}

public SequenceInfo()

{

}

...

}



public class TrameInfo

{

private double dTemps;

private PointF ptCentre;

private byte[,] byCapteurs;



public TrameInfo(double _dTemps, byte[,] _byCapteurs, PointF _ptCentre)

{

dTemps=_dTemps;

byCapteurs=_byCapteurs;

ptCentre=_ptCentre;

}

...

}


Merci d'avance.
Théo

2 réponses

cs_RMI Messages postés 305 Date d'inscription vendredi 18 juillet 2003 Statut Membre Dernière intervention 2 août 2010 2
14 mars 2006 à 11:05
J'ai trouvé!

Voilà la solution pour ceux que celà pourrait intérreser

[Serializable]

public class TrameInfo:ISerializable

{

private double dTemps;

private PointF ptCentre;

private byte[,] byCapteurs;



public TrameInfo()

{

//

// TODO : ajoutez ici la logique du constructeur

//

}



public TrameInfo(double _dTemps, byte[,] _byCapteurs, PointF _ptCentre)

{

dTemps=_dTemps;

byCapteurs=_byCapteurs;

ptCentre=_ptCentre;

}



public TrameInfo (SerializationInfo info,StreamingContext ctxt)

{

dTemps = (double)info.GetValue("T", typeof(double));

byCapteurs= (byte[,])info.GetValue("C", typeof(byte[,]));

ptCentre=(PointF)info.GetValue("P",typeof(PointF) );

}

#region Membres de ISerializable



public void GetObjectData(SerializationInfo info, StreamingContext context)

{

info.AddValue("T",dTemps );

info.AddValue("C", byCapteurs);

info.AddValue("P",ptCentre );

}



#endregion

}







[Serializable]

public class SequenceInfo:ISerializable

{

private Plaque plaque=Plaque.NonDefini;

private TrameInfo[] trameInfos=null;



public TrameInfo[] TrameInfos

{

set {trameInfos=value;}

}



public Plaque Plaque

{

get{return plaque;}

set{plaque=value;}

}



public TrameInfo this[int i]

{

get {return (TrameInfo) trameInfos[i];}

}



public SequenceInfo()

{

}



public SequenceInfo (SerializationInfo info,StreamingContext ctxt)

{

plaque = (Plaque)info.GetValue("P", typeof(int));

trameInfos= (TrameInfo[])info.GetValue("T", typeof(TrameInfo[]));

}



#region Membres de ISerializable







public void GetObjectData(SerializationInfo info, StreamingContext context)

{

info.AddValue("P", plaque);

info.AddValue("T", trameInfos);



}









#endregion


Théo
3
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
14 mars 2006 à 08:47
déjà, commence par marquer tes classes comme sérialisable...

[Serializable]
public class SequenceInfo....

[Serializable]
public class TrameInfo...


Sébastien FERRAND (
blog)
[Microsoft MVP Visual C#]
0
Rejoignez-nous