Bonjour, dans une classe manag�e j'ai d'autres instances de classes manag�es. Pour s�rialiser et d�s�rialiser ma classe principale, j'appelle directement un Runtime::Serialization::Formatters::Binary::BinaryFormatter.
Je rajoute l'attribut [Serializable] de l'assembleur au d�but de chaque d�claration de classe.
Le probl�me c'est que lorsque je d�s�rialise l'instance de la classe principale � partir d'un fichier je ne r�cup�re que les variables de l'instance tandis que les instances de classes manag�es prennent leur valeur par d�faut. Est-ce qu'il serait possible de faire le plus simple possible pour contourner ce probl�me. Est-ce que par exemple il est n�cessaire d'utiliser l'interface ISerializable ?
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 [Serializable] public ref class A { public: // ... }; [Serializable] public ref class B { public: // ... A ^pA; }; int main(...) { Runtime::Serialization::Formatters::Binary::BinaryFormatter ^bf; bf = gcnew Runtime::Serialization::Formatters::Binary::BinaryFormatter; B ^instance; String ^filename = "..."; // Serialisation IO::StreamWriter ^writer = gcnew IO::StreamWriter(filename); bf->Serialize(writer->BaseStream, instance); writer->Close(); // Deserialisation IO::StreamReader ^reader = gcnew IO::StreamReader(filename); instance = (B^) (bf->Deserialize(reader->BaseStream)); reader->Close(); // A n'est pas initialisé à partir des paramètres déclarés à la sérialisation //... }
Partager