begin process at 2012 02 16 20:49:39
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Divers

 > EXEMPLE DE SÉRIALISATION D'OBJETS

EXEMPLE DE SÉRIALISATION D'OBJETS


 Information sur la source

 Description

Rien de bien compliqué, juste histoire de montrer comment sérialiser un objet de votre application.

Source

  • Imports System.Xml
  • Imports System.Xml.Serialization
  • Imports System.IO
  • Imports System.Text
  • Public Class Humain
  • Public Nom As String
  • Public Prenom As String
  • Public DateNaissance As String
  • End Class
  • Module Serial
  • Dim Fichier As String = "Objet_Humain.xml"
  • Dim Objet_Humain As Humain
  • Public Sub Deserialiser()
  • Try
  • Dim x As XmlSerializer = New XmlSerializer(GetType(Humain))
  • Dim fs As New FileStream(Fichier, FileMode.Open)
  • Dim r As New XmlTextReader(fs)
  • Objet_Humain = CType(x.Deserialize(r), Humain)
  • r.Close()
  • fs.Close()
  • Catch ex As Exception
  • MsgBox(ex.ToString)
  • End Try
  • End Sub
  • Public Sub Serialiser()
  • Try
  • Dim x As XmlSerializer = New XmlSerializer(GetType(Humain))
  • Dim fs As New FileStream(Fichier, FileMode.Create)
  • Dim w As New XmlTextWriter(fs, New UTF8Encoding)
  • w.Formatting = Formatting.Indented
  • x.Serialize(w, Objet_Humain)
  • w.Close()
  • fs.Close()
  • Catch ex As Exception
  • MsgBox(ex.ToString)
  • End Try
  • End Sub
  • Public Sub main()
  • Try
  • Objet_Humain = New Humain
  • Objet_Humain.Nom = "X"
  • Objet_Humain.Prenom = "Senynium"
  • Objet_Humain.DateNaissance = "07/08/80"
  • MessageBox.Show("Nom : " & Objet_Humain.Nom & vbCrLf & "Prenom : " & Objet_Humain.Prenom & vbCrLf & "Ne le : " & Objet_Humain.DateNaissance, "Exemple de sérialisation", MessageBoxButtons.OK)
  • Serialiser()
  • Objet_Humain = New Humain
  • Objet_Humain.Nom = "A changé"
  • Objet_Humain.Prenom = "Achangé"
  • Objet_Humain.DateNaissance = "A changé"
  • MessageBox.Show("Nom : " & Objet_Humain.Nom & vbCrLf & "Prenom : " & Objet_Humain.Prenom & vbCrLf & "Ne le : " & Objet_Humain.DateNaissance, "Exemple de sérialisation", MessageBoxButtons.OK)
  • Objet_Humain = New Humain
  • Deserialiser()
  • MessageBox.Show("Nom : " & Objet_Humain.Nom & vbCrLf & "Prenom : " & Objet_Humain.Prenom & vbCrLf & "Ne le : " & Objet_Humain.DateNaissance, "Exemple de sérialisation", MessageBoxButtons.OK)
  • Catch ex As Exception
  • MsgBox(ex.ToString)
  • End Try
  • End Sub
  • End Module
Imports System.Xml
Imports System.Xml.Serialization
Imports System.IO
Imports System.Text



Public Class Humain
    Public Nom As String
    Public Prenom As String
    Public DateNaissance As String
End Class

Module Serial

    Dim Fichier As String = "Objet_Humain.xml"
    Dim Objet_Humain As Humain

    Public Sub Deserialiser()
        Try
            Dim x As XmlSerializer = New XmlSerializer(GetType(Humain))
            Dim fs As New FileStream(Fichier, FileMode.Open)
            Dim r As New XmlTextReader(fs)

            Objet_Humain = CType(x.Deserialize(r), Humain)
            r.Close()
            fs.Close()

        Catch ex As Exception
            MsgBox(ex.ToString)
        End Try
    End Sub


    Public Sub Serialiser()
        Try
            Dim x As XmlSerializer = New XmlSerializer(GetType(Humain))

            Dim fs As New FileStream(Fichier, FileMode.Create)
            Dim w As New XmlTextWriter(fs, New UTF8Encoding)
            w.Formatting = Formatting.Indented
            x.Serialize(w, Objet_Humain)
            w.Close()
            fs.Close()

        Catch ex As Exception
            MsgBox(ex.ToString)
        End Try
    End Sub


    Public Sub main()
        Try
            Objet_Humain = New Humain
            Objet_Humain.Nom = "X"
            Objet_Humain.Prenom = "Senynium"
            Objet_Humain.DateNaissance = "07/08/80"

            MessageBox.Show("Nom : " & Objet_Humain.Nom & vbCrLf & "Prenom : " & Objet_Humain.Prenom & vbCrLf & "Ne le : " & Objet_Humain.DateNaissance, "Exemple de sérialisation", MessageBoxButtons.OK)

            Serialiser()

            Objet_Humain = New Humain
            Objet_Humain.Nom = "A changé"
            Objet_Humain.Prenom = "Achangé"
            Objet_Humain.DateNaissance = "A changé"

            MessageBox.Show("Nom : " & Objet_Humain.Nom & vbCrLf & "Prenom : " & Objet_Humain.Prenom & vbCrLf & "Ne le : " & Objet_Humain.DateNaissance, "Exemple de sérialisation", MessageBoxButtons.OK)

            Objet_Humain = New Humain
            Deserialiser()


            MessageBox.Show("Nom : " & Objet_Humain.Nom & vbCrLf & "Prenom : " & Objet_Humain.Prenom & vbCrLf & "Ne le : " & Objet_Humain.DateNaissance, "Exemple de sérialisation", MessageBoxButtons.OK)


        Catch ex As Exception
            MsgBox(ex.ToString)
        End Try
    End Sub

End Module



 Conclusion

C'est juste à titre d'exemple donc ...   L'objet est sérialisé et écrit dans un fichier xml. Utile pour les échanges entre applications, ou pour un transfert internet.


 Sources du même auteur

Source avec Zip Source .NET (Dotnet) CONTROLE HORAIRE
Source .NET (Dotnet) ENVOYER UN MAIL À UN GROUPE D'UTILISATEUR ACTIVE DIRECTORY
Source .NET (Dotnet) ENVOI SIMPLE DE MAIL EN VB.NET
Source .NET (Dotnet) FONCTION POUR HACHER (MD5) UN TEXTE

 Sources de la même categorie

Source avec Zip TEXTBOX EN NUMÉRIQUE par 320C
Source avec Zip DÉCIMAL TO HEXDECIMAL par loulou27200
SOUS-TITRES : INCRÉMENTATION DE TOUTES LES CHAÎNES DE CARACT... par ALMIRA
Source avec Zip Source avec une capture EVALUER UN NOMBRE D'OBJETS AVEC UNE BALANCE ET DEUX ÉCHANTIL... par lexsty
Source avec Zip Source avec une capture PETIT LOGICIEL DE DEVIS SANS BD par lololilizozo

 Sources en rapport avec celle ci

Source avec Zip Source .NET (Dotnet) SÉRIALISTION - DÉSERIALISATION DE TABLEAUX ET COLLECTIONS par AlexMS
Source avec Zip Source avec une capture Source .NET (Dotnet) GRADIENTDIALOG - SÉLECTION DE DÉGRADÉS LINÉAIRES par Mayzz
Source avec Zip Source .NET (Dotnet) SÉRIALISATION/DÉSÉRIALISATION BINAIRE D'UNE CLASSE par _Fabien
Source .NET (Dotnet) SERIALISATION/DESERIALISATION D'UNE STRUCTURE par _Fabien
Source avec Zip Source avec une capture Source .NET (Dotnet) LA SOURIS ET SES COORDONNÉES par christoni

Commentaires et avis

Commentaire de Patrice99 le 08/12/2005 09:01:35

Je croyais qu'il suffisait simplement de mettre un attribut [Serialisable] sur la classe, en moins d'une ligne de code ???

Commentaire de Senynium X le 08/12/2005 09:45:29

Ah ? Et elle se sérialise toute seule ? Tu me montres comment faire ?

Commentaire de stef2004 le 09/12/2005 23:29:31

c'est quoi la sérialisation? excusez mon ignorance :)

Commentaire de sakty le 14/12/2005 15:25:22

merci pour vous ;mais c'est tres dificile

Commentaire de _Fabien le 10/01/2007 11:32:19

Merci pour cet exemple clair et simple qui ravira les débutants comme moi.

Ce serait bien de faire la même chose avec des structures mis dans des fichiers binaires.

Sinon, moi non plus, je ne sais pas pourquoi Microsoft a inventé la sérialisation ?

Commentaire de _Fabien le 10/01/2007 12:38:55

J'ai une question très bête : j'arrive pas à faire marcher ton programe. Où dois-je le compiler ? Dans fichier "Module", "Class", "Unité de test" (...) ?

Lorsque je le mets dans un module, il m'affiche des erreurs comme quoi MessageBox, MessageBoxButtons ne sont pas déclarés. Pareil quand je le mets dans un fichier "Class".

Commentaire de Senynium X le 10/01/2007 12:58:08

Salut,
Ce code ne génère pas d'erreur dans un module. Verifie que tu as une référence à la bibliothèque "system.windows.forms" dans ton projet.

Commentaire de _Fabien le 10/01/2007 13:49:34

Merci. Charles Racaud m'a répondu ici ->

http://www.vbfrance.com/infomsg_QUESTION-TRES-BETE_870170.aspx#5

Il a dit comme toi. Ça marche.

Sinon faut ajouter dans le code (pour ceux qui ont coincé comme moi) :

Imports system.windows.forms

Sinon, ton code m'intéresse car comme dit plus haut, mon vrai but est d'écrire une structure (ou alors une classe si marche pas) dans un fichier binaire. Et j'y arrive pas ! Alors, si je comprends ton code, j'essaierai de l'appliquer non pas pour des fichiers XML mais pour des fichiers binaires.

Voici 2 liens (une source et un message de moi dans le forum) :

http://www.vbfrance.com/codes/NET-TYPE-STRUCTURE-COMPATIBILITE-VB6_25830.aspx

http://www.vbfrance.com/infomsg_LIRE-ECRIRE-STRUCTURE-DANS-FICHIER_865075.aspx#6

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Sérialisation d'un objet [ par Ougalougou ] Je voudrais un exemple simple de création d'un objet 'personne" avec comme attributs "nom" et "prénom" et la sérialisation dans un fichier pour les co sérialisation d'une application [ par progrima ] bonjour tout le monde! je cherche à sécuriser des applications qui existent déjà et pour cela j'ai pensé à génerer des numéros de série, j'explique: 1 sérialisation [ par monvbfrance ] salut tout le mondeje voudrais un module qui fait la transformation d'un fichier xml ou xsd aux classes exploitable par le DOTNET. est ce que vous pou Sérialisation, génération de classes via XSD.exe [ par bacchusmaster ] Bonjour à tous,Je suis tombé sur un article (http://c2i.fr/code.aspx?IDCode=606) qui traite exactement de ce que je veux faire mai [DEBUTANT] sérialisation binaire de plusieurs objets [ par xawax34 ] Bonjour,Je voudrais faire une sérialisation binaire de plusieurs objets dans un seul fichier et lorsque je désérialise, chacun devra se retrouver dans sérialisation et sockets [ par Kite37 ] Bonjour ! Alors voici ma question : Pour le besoin de mon logiciel, je me retrouve dans l'obligation d'envoyer des objets complet via socket.Ceux-ci n Désérialisation en visual studio 2005 [ par Grefer2luxe ] Bonjour,Je fais actuellement une application en visual studio 2005 et je rencontre un souci. En effet, j'ai réussi à sérialiser dans mon programme mai problème sérialisation [ par jabaka ] Bonjour je vous expose mon problème que voici:J'ai trouver quelques sources qui parlais de sérialisation et même quelque un qui traitait du RichTextBo Sérialisation d'une form (au moment du design) [ par veler ] Salut,J'ai crée un concepteur de fenêtre, j'aimerais pouvoir obtenir une class (un bout de code quoi) à partir du contenu du concepteur (design surfac Problème avec la désérialisation binaire [ par veler ] Salut,J'ai un piti problème avec la désérialisation :J'ai le code suivant :Dim myFileStream As IO.Stream = IO.File.OpenRead(tmp_NomCompletFichier)Dim


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,418 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales