Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Paul Bacelar
Sérialiser, c'est figer un objet pour être sauvegardé sur disque ou envoyé à travers les réseaux et pour être ensuite déserialisé.
Je ne vois vraiment pas l'intérêt de faire cela sur une Form qui dispose de ressources du système sur lequel elle tourne comme des handles de fenêtre qui n'ont aucune valeur dans un contexte de sauvegarde ou d'envoie par le réseaux.
Quelle est votre problématique initiale ? -- Paul Bacelar MVP VC++
"lirim" wrote in message news:
salut,
comment fait-on pour rendre une form sérialisable. je voudrais le sérialiser en fichier binaire et non en xml...
Code: Stream stream = null; try { this.Text = "sauvegarde en cours"; int i = 0; Form frm = this.ActiveMdiChild; stream = File.Open(@"C:xxx.dat", FileMode.Create);
BinaryFormatter bf = new BinaryFormatter(); bf.Serialize(stream, frm);
j'ai essayé de mettre [Serializable] au début de ma classe qui corresponde au form que je veux sérializer mais nada.. erreur de compil...
je bosse sur le framework 2 et VS 2005
Sérialiser, c'est figer un objet pour être sauvegardé sur disque ou envoyé à
travers les réseaux et pour être ensuite déserialisé.
Je ne vois vraiment pas l'intérêt de faire cela sur une Form qui dispose de
ressources du système sur lequel elle tourne comme des handles de fenêtre
qui n'ont aucune valeur dans un contexte de sauvegarde ou d'envoie par le
réseaux.
Quelle est votre problématique initiale ?
--
Paul Bacelar
MVP VC++
"lirim" <lirim@discussions.microsoft.com> wrote in message
news:BC97193B-2A54-4096-A2F8-E8A5933FB842@microsoft.com...
salut,
comment fait-on pour rendre une form sérialisable. je voudrais le
sérialiser
en fichier binaire et non en xml...
Code:
Stream stream = null;
try
{
this.Text = "sauvegarde en cours";
int i = 0;
Form frm = this.ActiveMdiChild;
stream = File.Open(@"C:xxx.dat", FileMode.Create);
BinaryFormatter bf = new BinaryFormatter();
bf.Serialize(stream, frm);
Sérialiser, c'est figer un objet pour être sauvegardé sur disque ou envoyé à travers les réseaux et pour être ensuite déserialisé.
Je ne vois vraiment pas l'intérêt de faire cela sur une Form qui dispose de ressources du système sur lequel elle tourne comme des handles de fenêtre qui n'ont aucune valeur dans un contexte de sauvegarde ou d'envoie par le réseaux.
Quelle est votre problématique initiale ? -- Paul Bacelar MVP VC++
"lirim" wrote in message news:
salut,
comment fait-on pour rendre une form sérialisable. je voudrais le sérialiser en fichier binaire et non en xml...
Code: Stream stream = null; try { this.Text = "sauvegarde en cours"; int i = 0; Form frm = this.ActiveMdiChild; stream = File.Open(@"C:xxx.dat", FileMode.Create);
BinaryFormatter bf = new BinaryFormatter(); bf.Serialize(stream, frm);
j'ai essayé de mettre [Serializable] au début de ma classe qui corresponde au form que je veux sérializer mais nada.. erreur de compil...
je bosse sur le framework 2 et VS 2005
Patrick Philippot
Bonjour Paul,
Sérialiser, c'est figer un objet pour être sauvegardé sur disque ou envoyé à travers les réseaux et pour être ensuite déserialisé.
Je ne vois vraiment pas l'intérêt de faire cela sur une Form qui dispose de ressources du système sur lequel elle tourne comme des handles de fenêtre qui n'ont aucune valeur dans un contexte de sauvegarde ou d'envoie par le réseaux.
Je suppose que l'idée est de sauvegarder l'état d'une WinForm afin de la recharger plus tard dans le même état (taille, position, contenu des contrôles,...). C'est un besoin classique dans une appli Windows. Dans mes programmes, je m'efforce toujours de recharger une boîte de dialogue ou une fenêtre dans l'état où elle se trouvait la dernière fois qu'on l' a utilisée. Même quand le programme a été fermé. Une forme de sérialisation est donc nécessaire.
Malheureusement les classes de base des WinForms ne sont pas marquées [serializable]. Il faut donc dériver une nouvelle classe et y implémenter l'interface ISerializable. Ou bien prendre en charge soi même la sérialisation au travers d'une méthode qui stockerait les données dans un flux XML par exemple.
A tout hasard: http://www.kliksoft.com/?S=2&SS
Il y a du code de sérialisation des contrôles d'une WinForm dans ce sample: http://support.microsoft.com/default.aspx?scid=kb;en-us;813808
-- Patrick Philippot - Microsoft MVP MainSoft Consulting Services www.mainsoft.fr
Bonjour Paul,
Sérialiser, c'est figer un objet pour être sauvegardé sur disque ou
envoyé à travers les réseaux et pour être ensuite déserialisé.
Je ne vois vraiment pas l'intérêt de faire cela sur une Form qui
dispose de ressources du système sur lequel elle tourne comme des
handles de fenêtre qui n'ont aucune valeur dans un contexte de
sauvegarde ou d'envoie par le réseaux.
Je suppose que l'idée est de sauvegarder l'état d'une WinForm afin de la
recharger plus tard dans le même état (taille, position, contenu des
contrôles,...). C'est un besoin classique dans une appli Windows. Dans
mes programmes, je m'efforce toujours de recharger une boîte de dialogue
ou une fenêtre dans l'état où elle se trouvait la dernière fois qu'on l'
a utilisée. Même quand le programme a été fermé. Une forme de
sérialisation est donc nécessaire.
Malheureusement les classes de base des WinForms ne sont pas marquées
[serializable]. Il faut donc dériver une nouvelle classe et y
implémenter l'interface ISerializable. Ou bien prendre en charge soi
même la sérialisation au travers d'une méthode qui stockerait les
données dans un flux XML par exemple.
A tout hasard:
http://www.kliksoft.com/?S=2&SS
Il y a du code de sérialisation des contrôles d'une WinForm dans ce
sample:
http://support.microsoft.com/default.aspx?scid=kb;en-us;813808
--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr
Sérialiser, c'est figer un objet pour être sauvegardé sur disque ou envoyé à travers les réseaux et pour être ensuite déserialisé.
Je ne vois vraiment pas l'intérêt de faire cela sur une Form qui dispose de ressources du système sur lequel elle tourne comme des handles de fenêtre qui n'ont aucune valeur dans un contexte de sauvegarde ou d'envoie par le réseaux.
Je suppose que l'idée est de sauvegarder l'état d'une WinForm afin de la recharger plus tard dans le même état (taille, position, contenu des contrôles,...). C'est un besoin classique dans une appli Windows. Dans mes programmes, je m'efforce toujours de recharger une boîte de dialogue ou une fenêtre dans l'état où elle se trouvait la dernière fois qu'on l' a utilisée. Même quand le programme a été fermé. Une forme de sérialisation est donc nécessaire.
Malheureusement les classes de base des WinForms ne sont pas marquées [serializable]. Il faut donc dériver une nouvelle classe et y implémenter l'interface ISerializable. Ou bien prendre en charge soi même la sérialisation au travers d'une méthode qui stockerait les données dans un flux XML par exemple.
A tout hasard: http://www.kliksoft.com/?S=2&SS
Il y a du code de sérialisation des contrôles d'une WinForm dans ce sample: http://support.microsoft.com/default.aspx?scid=kb;en-us;813808
-- Patrick Philippot - Microsoft MVP MainSoft Consulting Services www.mainsoft.fr
Paul Bacelar
Je pensais aussi à ce besoin mais je voulais mettre l'accents sur la sémantique de la sérialisation et part la même expliquer le fait que les Form ne sont pas sérialisables "de bases". Pour pouvoir correctement implémenter l'interface ISerialisable, il faut avoir une vue claire du concept dans son ensemble. Chose qui ne transparaissait pas dans le post initial. -- Paul Bacelar MVP VC++
"Patrick Philippot" wrote in message news:
Bonjour Paul,
Sérialiser, c'est figer un objet pour être sauvegardé sur disque ou envoyé à travers les réseaux et pour être ensuite déserialisé.
Je ne vois vraiment pas l'intérêt de faire cela sur une Form qui dispose de ressources du système sur lequel elle tourne comme des handles de fenêtre qui n'ont aucune valeur dans un contexte de sauvegarde ou d'envoie par le réseaux.
Je suppose que l'idée est de sauvegarder l'état d'une WinForm afin de la recharger plus tard dans le même état (taille, position, contenu des contrôles,...). C'est un besoin classique dans une appli Windows. Dans mes programmes, je m'efforce toujours de recharger une boîte de dialogue ou une fenêtre dans l'état où elle se trouvait la dernière fois qu'on l' a utilisée. Même quand le programme a été fermé. Une forme de sérialisation est donc nécessaire.
Malheureusement les classes de base des WinForms ne sont pas marquées [serializable]. Il faut donc dériver une nouvelle classe et y implémenter l'interface ISerializable. Ou bien prendre en charge soi même la sérialisation au travers d'une méthode qui stockerait les données dans un flux XML par exemple.
A tout hasard: http://www.kliksoft.com/?S=2&SS
Il y a du code de sérialisation des contrôles d'une WinForm dans ce sample: http://support.microsoft.com/default.aspx?scid=kb;en-us;813808
-- Patrick Philippot - Microsoft MVP MainSoft Consulting Services www.mainsoft.fr
Je pensais aussi à ce besoin mais je voulais mettre l'accents sur la
sémantique de la sérialisation et part la même expliquer le fait que les
Form ne sont pas sérialisables "de bases". Pour pouvoir correctement
implémenter l'interface ISerialisable, il faut avoir une vue claire du
concept dans son ensemble. Chose qui ne transparaissait pas dans le post
initial.
--
Paul Bacelar
MVP VC++
"Patrick Philippot" <patrick.philippot@mainsoft.xx.fr> wrote in message
news:O972i7LTGHA.5908@TK2MSFTNGP10.phx.gbl...
Bonjour Paul,
Sérialiser, c'est figer un objet pour être sauvegardé sur disque ou
envoyé à travers les réseaux et pour être ensuite déserialisé.
Je ne vois vraiment pas l'intérêt de faire cela sur une Form qui
dispose de ressources du système sur lequel elle tourne comme des
handles de fenêtre qui n'ont aucune valeur dans un contexte de
sauvegarde ou d'envoie par le réseaux.
Je suppose que l'idée est de sauvegarder l'état d'une WinForm afin de la
recharger plus tard dans le même état (taille, position, contenu des
contrôles,...). C'est un besoin classique dans une appli Windows. Dans mes
programmes, je m'efforce toujours de recharger une boîte de dialogue ou
une fenêtre dans l'état où elle se trouvait la dernière fois qu'on l' a
utilisée. Même quand le programme a été fermé. Une forme de sérialisation
est donc nécessaire.
Malheureusement les classes de base des WinForms ne sont pas marquées
[serializable]. Il faut donc dériver une nouvelle classe et y implémenter
l'interface ISerializable. Ou bien prendre en charge soi même la
sérialisation au travers d'une méthode qui stockerait les données dans un
flux XML par exemple.
A tout hasard:
http://www.kliksoft.com/?S=2&SS
Il y a du code de sérialisation des contrôles d'une WinForm dans ce
sample:
http://support.microsoft.com/default.aspx?scid=kb;en-us;813808
--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr
Je pensais aussi à ce besoin mais je voulais mettre l'accents sur la sémantique de la sérialisation et part la même expliquer le fait que les Form ne sont pas sérialisables "de bases". Pour pouvoir correctement implémenter l'interface ISerialisable, il faut avoir une vue claire du concept dans son ensemble. Chose qui ne transparaissait pas dans le post initial. -- Paul Bacelar MVP VC++
"Patrick Philippot" wrote in message news:
Bonjour Paul,
Sérialiser, c'est figer un objet pour être sauvegardé sur disque ou envoyé à travers les réseaux et pour être ensuite déserialisé.
Je ne vois vraiment pas l'intérêt de faire cela sur une Form qui dispose de ressources du système sur lequel elle tourne comme des handles de fenêtre qui n'ont aucune valeur dans un contexte de sauvegarde ou d'envoie par le réseaux.
Je suppose que l'idée est de sauvegarder l'état d'une WinForm afin de la recharger plus tard dans le même état (taille, position, contenu des contrôles,...). C'est un besoin classique dans une appli Windows. Dans mes programmes, je m'efforce toujours de recharger une boîte de dialogue ou une fenêtre dans l'état où elle se trouvait la dernière fois qu'on l' a utilisée. Même quand le programme a été fermé. Une forme de sérialisation est donc nécessaire.
Malheureusement les classes de base des WinForms ne sont pas marquées [serializable]. Il faut donc dériver une nouvelle classe et y implémenter l'interface ISerializable. Ou bien prendre en charge soi même la sérialisation au travers d'une méthode qui stockerait les données dans un flux XML par exemple.
A tout hasard: http://www.kliksoft.com/?S=2&SS
Il y a du code de sérialisation des contrôles d'une WinForm dans ce sample: http://support.microsoft.com/default.aspx?scid=kb;en-us;813808
-- Patrick Philippot - Microsoft MVP MainSoft Consulting Services www.mainsoft.fr