[VB.NET] Serialiser une form !!

Serialiser une form !! [VB.NET] - C#/.NET managed - Programmation

Marsh Posté le 15-03-2006 à 14:17:55    

Bonjour,  
 
Je voudrais sérialiser ma form masi j'ai une erreur qui apparait :

Code :
  1. <Serializable()> Friend Class Smiley
  2.     'Inherits MyForm
  3.     Public MyForm As Form
  4. End Class


Donc je permet la serialisation de cette class mais lorsque je fais :

Code :
  1. Shared Sub test(ByVal List As ArrayList)
  2.     If File.Exists("C:\Smiley.txt" ) Then
  3.         File.Delete("C:\Smiley.txt" )
  4.     End If
  5.     Dim s As New FileStream("C:\Smiley.txt", FileMode.Create)
  6.     Dim f As New SoapFormatter
  7.     f.Serialize(s, List)
  8.     s.Close()
  9. End Sub


et bahn j'ai une erreur disant que la classe system.windows.forms.form n'est pas sérialisable !! Comment faire pour la rendre sérialisable ??
 
Merci a vous !

Reply

Marsh Posté le 15-03-2006 à 14:17:55   

Reply

Marsh Posté le 16-03-2006 à 21:28:38    

up

Reply

Marsh Posté le 16-03-2006 à 22:51:49    

fdiedler a écrit :


et bahn j'ai une erreur disant que la classe system.windows.forms.form n'est pas sérialisable !! Comment faire pour la rendre sérialisable ??


si le CLR te dit que cette classe n'est pas sérialisable, c'est qu'elle n'est pas sérialisable, point barre. il n'y a donc rien à faire d'autre que de préfixer la déclaration de ta Form avec l'attribut <NonSerialized()>


Message édité par Harkonnen le 16-03-2006 à 22:51:59

---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 17-03-2006 à 12:01:07    

bah  pourtant on ma dis qu'en mettant l'attribut <Serializable()> et bah c'etais cencé marcher mais apparament non ... c pour ca moi je comprends pas !!

Reply

Marsh Posté le 17-03-2006 à 13:34:02    

l'attribut <Serializable> te permet de sérialiser tous les membres d'une classe, à conditions que ceux ci soient aussi sérialisables, ce qui n'est pas le cas d'une form (ta variable membre MyForm)
si tu veux sérialiser ta classe, tu dois indiquer que tu ne veux pas sérialiser MyForm. en plus, ce que tu sérialises c'est ta liste de smileys, tu n'as pas besoin de sérialiser la Form

Code :
  1. <Serializable()> Friend Class Smiley
  2.   'Inherits MyForm
  3.    <NonSerialized()>
  4.    Public MyForm As Form
  5. End Class


 
edit: en plus, je vois pas à quoi sert cette variable dans ta classe :heink:


Message édité par Harkonnen le 17-03-2006 à 13:35:02

---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 17-03-2006 à 18:34:34    

ok en fait j'ai fais autrement et ca marche
 
PS: Je n'est pas mis tous le code donc c'est pour ca que tu ne vois pas l'utilité de MyForm ..
 
Merci

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed