IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Sérialisation et Déserialisation XML


Sujet :

VB.NET

  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2017
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2017
    Messages : 150
    Par défaut Sérialisation et Déserialisation XML
    Bonjour à tous !

    Alors j'ai quelque problème. J'aimerai en fait sérialiser, déserialiser et récupérer mon fichier .xml à la racine de mon bin.

    Je n'ai pas d'erreur dans mon programme, il compile bien, mais je ne retrouve pas mon fichier .xml dans mon bin, il ne se passe rien. J'aimerai lorsque je clique sur valider que mon programme sérialise et donc créer un fichier .xml.

    Par contre dans un programme secondaire j'ai réussi à sérialiser et déserialiser des données. Après je lisais ma déserialisation dans une console.

    Alors voilà "une partie" de mon prog :

    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    Imports System
    Imports System.Collections.Generic
    Imports System.Text
    Imports System.Windows
    Imports System.Windows.Controls
    Imports System.Windows.Data
    Imports System.Windows.Documents
    Imports System.Windows.Input
    Imports System.Windows.Media
    Imports System.Xml.Serialization
    Imports System.Xml.Linq
    Imports System.IO
     
     
    ''' <summary>
    ''' Interaction logic for ModeMenu.xaml
    ''' </summary>
    Public Partial Class ModeMenu
    	Inherits UserControl
     
    	Event MainMenuButtonClicked(Index As Integer)
     
    	Public Shared ReadOnly CommandEscapeButton As New RoutedCommand()
    	Public Shared ReadOnly CommandValidateButton As New RoutedCommand()
     
    	Public Shared ReadOnly CommandUSBButton As New RoutedCommand()
    	Public Shared ReadOnly CommandBTButton As New RoutedCommand()
    	Public Shared ReadOnly CommandPermButton As New RoutedCommand()
    	Public Shared ReadOnly CommandInterButton As New RoutedCommand()
     
    	Public Sub New()
    		InitializeComponent()
    	End Sub
     
    	Private Sub CommandBinding_Executed (sender As Object, e As ExecutedRoutedEventArgs)
    		If (e.Command Is CommandUSBButton) Then
     
    		ElseIf (e.Command Is CommandBTButton) Then
     
    		ElseIf (e.Command Is CommandPermButton) Then
     
    		ElseIf (e.Command Is CommandInterButton) Then
     
    		End If
    	End Sub
     
    	Private Sub CommandBinding_Validate (ByVal sender As Object, ByVal e As ExecutedRoutedEventArgs)
    		RaiseEvent MainMenuButtonClicked(1)
    	End Sub
    	Private Sub CommandBinding_Escape (ByVal sender As Object, ByVal e As ExecutedRoutedEventArgs)
    		RaiseEvent MainMenuButtonClicked(0)
    	End Sub
    End Class
    Voici ce que j'ai rajouté afin de faire un "test" et cette partie fonctionne lorsqu'elle est seule :

    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
    37
    38
    '///////////////////// Exemple de sérialisation avec Id ////////////////////////////////////
     
    Public Class Test
    'Methods 	
    		Public Sub New()
    		End Sub
    'Properties		
    		Public Property Id() As Integer
    			Get
    				Return m_Id
    			End Get
    			Set
    				m_Id = Value
    			End Set
    		End Property
    'Déclarations		
    		Private m_Id As Integer
    End Class
     
     
     
    Public Class Program
     
    	Private Shared Sub Main(args As String())
     
    			Dim p As New Test() 
     
    			p.Id = 123
     
    			Dim xs As New XmlSerializer(GetType(Test))
    			Using wr As New StreamWriter("test.xml")
     
    				xs.Serialize(wr, p)
     
    			End Using
     
    		End Sub
    End Class
    Donc voilà ce que j'ai au total :

    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    Public Partial Class ModeMenu
    	Inherits UserControl
     
    	Event MainMenuButtonClicked(Index As Integer)
     
    	Public Shared ReadOnly CommandEscapeButton As New RoutedCommand()
    	Public Shared ReadOnly CommandValidateButton As New RoutedCommand()
     
    	Public Shared ReadOnly CommandUSBButton As New RoutedCommand()
    	Public Shared ReadOnly CommandBTButton As New RoutedCommand()
    	Public Shared ReadOnly CommandPermButton As New RoutedCommand()
    	Public Shared ReadOnly CommandInterButton As New RoutedCommand()
     
    	Public Sub New()
    		InitializeComponent()
    	End Sub
     
    	Private Sub CommandBinding_Executed (sender As Object, e As ExecutedRoutedEventArgs)
    		If (e.Command Is CommandUSBButton) Then
     
    		ElseIf (e.Command Is CommandBTButton) Then
     
    		ElseIf (e.Command Is CommandPermButton) Then
     
    		ElseIf (e.Command Is CommandInterButton) Then
     
    		End If
    	End Sub
     
    	Private Sub CommandBinding_Validate (ByVal sender As Object, ByVal e As ExecutedRoutedEventArgs)
    		RaiseEvent MainMenuButtonClicked(1)
    	End Sub
    	Private Sub CommandBinding_Escape (ByVal sender As Object, ByVal e As ExecutedRoutedEventArgs)
    		RaiseEvent MainMenuButtonClicked(0)
    	End Sub
    End Class
     
    '///////////////////// Exemple de sérialisation avec Id ////////////////////////////////////
     
    Public Class Test
    'Methods 	
    		Public Sub New()
    		End Sub
    'Properties		
    		Public Property Id() As Integer
    			Get
    				Return m_Id
    			End Get
    			Set
    				m_Id = Value
    			End Set
    		End Property
    'Déclarations		
    		Private m_Id As Integer
    End Class
     
     
     
    Public Class Program
     
    	Private Shared Sub Main(args As String())
     
    			Dim p As New Test() 
     
    			p.Id = 123
     
    			Dim xs As New XmlSerializer(GetType(Test))
    			Using wr As New StreamWriter("test.xml")
     
    				xs.Serialize(wr, p)
     
    			End Using
     
    		End Sub
    End Class
    Quelqu'un peut-il m'aider Svp ??

  2. #2
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2017
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2017
    Messages : 150
    Par défaut
    Alors j'ai réussi, en fait je ne faisais pas appel à ma fonction et mon main était en private mais mon xml ce créer trop tôt...

    voici ce que j'ai rajouté dans mon public sub new():

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    	Public Sub New()
    		InitializeComponent()
    		call Program.Main2
    	End Sub
    et :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public Shared Sub Main2
    Maintenant il faudrait que je puisse créer ce fichier lorsque je le souhaite et non pas lorsque je lance l'appli. Je sais que je fais appel de ma fonction serialize dans un public sub new donc forcement ça se lance au démarrage...

    Mais comment faire alors ?

  3. #3
    Membre chevronné Avatar de r.morel
    Homme Profil pro
    Dessinateur CAO
    Inscrit en
    Août 2014
    Messages
    339
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Dessinateur CAO
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2014
    Messages : 339
    Par défaut
    Salut,
    J'ai découvert la serialization XML avec les classes grâce à ce post de Wallace.
    Cela fonctionne à merveille et c'est d'une simplicité déconcertante par rapport aux autres outils XMl comme Vakos que j'utilisais auparavant.

    Ensuite, à toi d'adapter en appelant ton constructeur au moment opportun.

    A plus.

  4. #4
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2017
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2017
    Messages : 150
    Par défaut
    Maintenant il faudrait que je puisse créer ce fichier lorsque je le souhaite et non pas lorsque je lance l'appli. Je sais que je fais appel de ma fonction serialize dans un public sub new donc forcement ça se lance au démarrage...
    Je pense que si je fais l'appel ici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub CommandBinding_Validate (ByVal sender As Object, ByVal e As ExecutedRoutedEventArgs)
    		RaiseEvent MainMenuButtonClicked(1)
    		call Program.Main2
    	End Sub
    ça devrait fonctionner, je vais tenter.

    J'ai découvert la serialization XML avec les classes grâce à ce post de Wallace.
    Merci pour ta réponse je vais étudier ça de plus près !

  5. #5
    Membre Expert
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Billets dans le blog
    7
    Par défaut
    bonjour,

    Tu ne serialises/deserialises rien du tout puisque tes classes ne sont pas decorés avec l attribut "Serializable"

    ++

  6. #6
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2017
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2017
    Messages : 150
    Par défaut
    Tu ne serialises/deserialises rien du tout puisque tes classes ne sont pas decorés avec l attribut "Serialize"
    Merci pour la réponse, effectivement pas de sérialisation mais du coup que dois-je faire ? Lorsque tu dis décorer tu parles de ça "<Serializable>"

  7. #7
    Membre chevronné Avatar de r.morel
    Homme Profil pro
    Dessinateur CAO
    Inscrit en
    Août 2014
    Messages
    339
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Dessinateur CAO
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2014
    Messages : 339
    Par défaut
    Citation Envoyé par ism10 Voir le message
    Merci pour la réponse, effectivement pas de sérialisation mais du coup que dois-je faire ? Lorsque tu dis décorer tu parles de ça "<Serializable>"
    Tout est dans l'exemple du lien.

    Dans ta classe tu dois :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <Serializable> 
    Public Class Evaluation
      (...)
    End Class

  8. #8
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2017
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2017
    Messages : 150
    Par défaut
    Alors j'ai bien un .xml qui est généré dans mon bin lorsque je mets un morceau de mon code en commentaire, en revanche si je mets mon code "entier" j'obtiens une erreur "Argument non spécifié pour le pararètre....."

    voici mon code :

    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    Public Class EventLibrary
        Inherits ObservableCollection(Of EventDefinition)
        
        ' Methods 
     Public Sub new()
            MyBase.Add(New EventDefinition("Short circuit", "14.40", "Sep 5, 2013 3.18.35 PM", "Resources/Reliability-mauvaise.png", "3"))
            MyBase.Add(New EventDefinition("Open circuit", "5.22", "Sep 5, 2013 3.18.35 PM", "Resources/Reliability.png", "7"))
            MyBase.Add(New EventDefinition("Short circuit", "14.40", "Sep 5, 2013 3.18.35 PM", "Resources/Reliability-mauvaise.png", "5"))
            MyBase.Add(New EventDefinition("Short circuit", "8.65", "Sep 5, 2013 3.18.35 PM", "Resources/Reliability.png", "8"))
            MyBase.Add(New EventDefinition("Open circuit", "47.26", "Sep 5, 2013 3.18.35 PM", "Resources/Reliability-mauvaise.png", "4"))
            MyBase.Add(New EventDefinition("Short circuit", "125.3", "Sep 5, 2013 3.18.35 PM", "Resources/Reliability.png", "10"))
            MyBase.Add(New EventDefinition("Open circuit", "5.36", "Sep 5, 2013 3.18.35 PM", "Resources/Reliability.png", "7"))
            MyBase.Add(New EventDefinition("Open circuit", "6.14", "Sep 5, 2013 3.18.35 PM", "Resources/Reliability-mauvaise.png", "1"))
            MyBase.Add(New EventDefinition("Short circuit", "0.25", "Sep 5, 2013 3.18.35 PM", "Resources/Reliability.png", "10"))
        End Sub
    End Class
    
    <SerializableAttribute> 
    Public Class EventDefinition 
    	
        ' Methods 
        Public Sub new(ByVal Type As String, ByVal Distance As String, ByVal Time As String, ByVal ReliabilityPict As String, ByVal Reliability As String)
    
        	Me._FaultType = Type
            Me._FaultDistance = Distance
            Me._FaultTime = Time
            Me._FaultReliabilityPict = ReliabilityPict
            Me._FaultReliability = Reliability
        End Sub 
    
        ' Properties 
        Public Property FaultType() As String 
            Get 
                Return Me._FaultType
            End Get 
            Set(ByVal value As String)
                Me._FaultType = value
            End Set 
        End Property
    	Public Property FaultDistance() As String 
    		Get 
    			Return Me._FaultDistance
    		End Get 
    		Set(ByVal value As String)
    			Me._FaultDistance = value
    		End Set 
    	End Property 
    	Public Property FaultTime() As String 
    		Get 
    			Return Me._FaultTime
    		End Get 
    		Set(ByVal value As String)
    			Me._FaultTime = value
    		End Set 
    	End Property 
    	Public Property FaultReliabilityPict() As String 
    		Get 
    			Return Me._FaultReliabilityPict
    		End Get 
    		Set(ByVal value As String)
    			Me._FaultReliabilityPict = value
    		End Set 
    	End Property
    	Public Property FaultReliability() As String 
    		Get 
    			Return Me._FaultReliability
    		End Get 
    		Set(ByVal value As String)
    			Me._FaultReliability = value
    		End Set 
    	End Property
    
        ' Fields 
        Private _FaultType As String 
        Private _FaultDistance As String
        Private _FaultTime As String 
        Private _FaultReliabilityPict As String
        Private _FaultReliability As String
        
    
        
    '///////////////////////////// Fichier XML généré //////////////////////////////////////////
    <SerializableAttribute>    
    Public Class Program
        
        Public Shared Sub Main2
        	
    		Dim p As New EventDefinition() 
    		
    		p._FaultType = " ABCD "
    		p._FaultDistance = " EFGH "
    		p._FaultTime = " IJKL "
    		p._FaultReliabilityPict = " MNOP "
    		p._FaultReliability =" QRST "
    		
    		Dim xs As New XmlSerializer(GetType(EventDefinition))
    		Using wr As New StreamWriter("Events.xml")
    			
    			xs.Serialize(wr, p)
    '				wr.Flush 
    '				wr.Close
    '				Stop
    		End Using
    		
    	End Sub
    End Class
    End Class
    L'erreur est signalée dans la partie en gras. Il me signal 'p' dans ma classe Program

    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
    Public Class Program
        
        Public Shared Sub Main2
        	
    		Dim p As New EventDefinition() 
    		
    		p._FaultType = " ABCD "
    		p._FaultDistance = " EFGH "
    		p._FaultTime = " IJKL "
    		p._FaultReliabilityPict = " MNOP "
    		p._FaultReliability = " QRST "
    		
    		Dim xs As New XmlSerializer(GetType(EventDefinition))
    		Using wr As New StreamWriter("Events.xml")
    			
    			xs.Serialize(wr, p)
    '				wr.Flush 
    '				wr.Close
    '				Stop
    		End Using
    		
    	End Sub
    End Class
    Nom : argument non spec.PNG
Affichages : 494
Taille : 14,3 Ko

    et donc fonctionne comme ceci lorsque je passe en commentaire et que je change mon public sub new en public sub EventDef :

    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
    Public Class EventLibrary
        Inherits ObservableCollection(Of EventDefinition)
        
        ' Methods 
        Public Sub new()
            MyBase.Add(New EventDefinition())'"Short circuit", "14.40", "Sep 5, 2013 3.18.35 PM", "Resources/Reliability-mauvaise.png", "3"))
            MyBase.Add(New EventDefinition())'"Open circuit", "5.22", "Sep 5, 2013 3.18.35 PM", "Resources/Reliability.png", "7"))
            MyBase.Add(New EventDefinition())'"Short circuit", "14.40", "Sep 5, 2013 3.18.35 PM", "Resources/Reliability-mauvaise.png", "5"))
            MyBase.Add(New EventDefinition())'"Short circuit", "8.65", "Sep 5, 2013 3.18.35 PM", "Resources/Reliability.png", "8"))
            MyBase.Add(New EventDefinition())'"Open circuit", "47.26", "Sep 5, 2013 3.18.35 PM", "Resources/Reliability-mauvaise.png", "4"))
            MyBase.Add(New EventDefinition())'"Short circuit", "125.3", "Sep 5, 2013 3.18.35 PM", "Resources/Reliability.png", "10"))
            MyBase.Add(New EventDefinition())'"Open circuit", "5.36", "Sep 5, 2013 3.18.35 PM", "Resources/Reliability.png", "7"))
            MyBase.Add(New EventDefinition())'"Open circuit", "6.14", "Sep 5, 2013 3.18.35 PM", "Resources/Reliability-mauvaise.png", "1"))
            MyBase.Add(New EventDefinition())'"Short circuit", "0.25", "Sep 5, 2013 3.18.35 PM", "Resources/Reliability.png", "10"))
        End Sub
    End Class
    
    <SerializableAttribute> 
    Public Class EventDefinition 
    	
        ' Methods 
        Public Sub EventDef(ByVal Type As String, ByVal Distance As String, ByVal Time As String, ByVal ReliabilityPict As String, ByVal Reliability As String)
    
        	Me._FaultType = Type
            Me._FaultDistance = Distance
            Me._FaultTime = Time
            Me._FaultReliabilityPict = ReliabilityPict
            Me._FaultReliability = Reliability
        End Sub
    Je ne maîtrise pas le vb.net je ne suis qu'un débutant.
    Une idée svp ?


    /////////////////////////////////////////////

    Edit : j'ai rajouté
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    sub new ()
    'no op
    end sub
    J'avais trouvé ça sur le net attention c'est en anglais :
    The compiler no longer creates a default constructor - so there isn't any no argument sub new anymore. As a result, you no longer can instantiate the class (call sub new) without passing an argument.... So, if you really want your code to work as written - simply add a no argument sub new to your class:
    Nom : Events.PNG
Affichages : 499
Taille : 41,9 Ko

  9. #9
    Membre Expert
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Billets dans le blog
    7
    Par défaut
    Ton programme m'a l'air très mal structuré,...c'est donc assez difficile de savoir ce que tu dois sérialiser....o_O
    A ce stade il faut que tu montres a quoi devras ressembler ton fichier .xml

    ATTENTION : cependant les champs ne sont pas serializable il faut donc les décorer avec l'attribut "XmlIgnore" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <XmlIgnore()> _
    Private _FaultType As String 
    <XmlIgnore()> _
    Private _FaultDistance As String
    <XmlIgnore()> _
    Private _FaultTime As String 
    <XmlIgnore()> _
    Private _FaultReliabilityPict As String
    <XmlIgnore()> _
    Private _FaultReliability As String
    Je reste en attente de ton effet à obtenir pour davantage de conseils.


    EDIT :

    Pour une meilleure compréhension je te recommande vivement de te baser sur cet exemple ci : https://www.developpez.net/forums/d1...l/#post8797998
    Considères que ton fichier xml sera une sorte de fichier contenant des paramètres....

    ++

  10. #10
    Membre Expert
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Billets dans le blog
    7
    Par défaut
    Je viens de voir le contenu de ton fichier xml en pj plus haut......

    Ton fichier Xml devra contenir UN SEUL noeud "EventDefinition" ou bien plusieurs ???

  11. #11
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2017
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2017
    Messages : 150
    Par défaut
    Bonjour Wallace1, merci pour tes réponses !

    Ton fichier Xml devra contenir UN SEUL noeud "EventDefinition" ou bien plusieurs ???
    Normalement oui, en tt cas c'est ce que j'ai compris par rapport aux consignes données.

  12. #12
    Membre Expert
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Billets dans le blog
    7
    Par défaut
    bonjour,

    donc tu n as pas a gerer de List (Of EventDefinition) dans ta serialization

    car dans le cas ou il faudrait serializer plusieurs noeuds EventDefinition il faudrait repenser ton patron serializable pour que tes noeuds EventDefinition appartiennent par exemple a un noeud unique : EventDefinitionS qui correspondrait a une List (Of EventDefinition)

    ok.++

  13. #13
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2017
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2017
    Messages : 150
    Par défaut
    Merci Wallace1 c'est noté !

    Sinon j'avais 2 questions, la première est que j'aimerai savoir si il existe une fonction dite "callback" qui à chaque lancement de mon appli, me permettrait de savoir si mon .xml a été modifié ?

    La deuxième est que j'aimerai lancer un .exe, pareil à chaque lancement de mon appli ? Pour cette deuxième question j'ai entendu parler de "process.start" et l'adresse de mon .exe ?

    Aurais-tu une piste stp ? ou quelqu'un qui passerait par là ?

    Je cherche en fait à utiliser une fonction callback qui permettrait de relire mon fichier .xml (sérialisé) à chaque modification (donc à chaque fois qu'il a été modifié) et cela à chaque démarrage (au lancement de mon appli). Donc à chaque démarrage mon callback me dira si mon .xml a été modifié.

    Pensez-vous que c'est possible ?

    Si oui comment faire ? Quelqu'un aurait un lien, une idée, une marche à suivre ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [WD20] Dé-sérialisation Json ou Xml
    Par tunizar dans le forum WinDev
    Réponses: 0
    Dernier message: 14/04/2016, 16h26
  2. Réponses: 3
    Dernier message: 31/07/2012, 15h50
  3. Réponses: 4
    Dernier message: 02/12/2008, 12h00
  4. Sérialiser Object en XML Recursif
    Par Soulama dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 27/05/2008, 14h06
  5. Sérialisation / déserialisation XML
    Par soumamort dans le forum Windows Forms
    Réponses: 5
    Dernier message: 16/04/2008, 17h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo