Posez votre question Signaler

Désérialiser collection généric VB.NET (xml)

milou43 13Messages postés 24 août 2010Date d'inscription 2 juin 2011Dernière intervention - Dernière réponse le 2 juin 2011 à 10:44
Bonjour,
Je débute dans les collections en VB.NET.
J'essaie de programmer en vb.net le cas NETCAR (étude de cas du bts ig 2003) pour ceux qui connaissent.
Lien pour télécharger le cas et avoir plus d'informations (diagramme de classe, détail des classes) :
http://www.reseaucerta.org/...
Je voudrais désérialiser la collection de véhicule qui est dans mon fichier Vehicule.xml pour mettre celle-ci dans ma collection qui est dans la classe Atelier (_lesVéhicules).
Mais avec le code que je vous ai fourni plus bas une erreur s'affiche lors de la désérialisation : "l'exception nullreferenceexception n'a pas été gérée
La référence d'objet n'est pas définie à une instance d'un objet."
Classe Atelier :
Imports System.Xml.Serialization
Imports System.Collections.Generic
<Serializable()> Public Class Atelier
Private _lesTypesExistants As New List(Of EntretienType)
Private _lesVehicules As New List(Of Vehicule)
Public Sub New()
_lesVehicules = New List(Of Vehicule)
_lesTypesExistants = New List(Of EntretienType)
End Sub
Public Property lesVehicules() As List(Of Vehicule)
Get
Return _lesVehicules
End Get
Set(ByVal value As List(Of Vehicule))
_lesVehicules = value
End Set
End Property
End Class
Classe Vehicule :
Imports System.IO
Imports System.Xml.Serialization
Imports System.Collections.Generic
<Serializable()> Public Class Vehicule
Private _numImma As String
Private _nbKmActuel As Integer
Sub New()
End Sub
Sub New(ByVal unNumImma As String, ByVal unNbKmActuel As Integer)
_numImma = unNumImma
_nbKmActuel = unNbKmActuel
End Sub
Public Property numImma() As String
Get
Return _numImma
End Get
Set(ByVal value As String)
_numImma = value
End Set
End Property
Public Property nbKmActuel() As Integer
Get
Return _nbKmActuel
End Get
Set(ByVal value As Integer)
_nbKmActuel = value
End Set
End Property
End Class
Form1:
Public Class Form1
Private vehicule As Vehicule
Private atelier As Atelier
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim atelier As New Atelier()
Charger()
DGV_Vehicule()
End Sub
Sub Charger()
If File.Exists("Vehicule.xml") Then
Dim FluxDeFichier As Stream = File.OpenRead("Vehicule.xml")
Dim Deserialiseur As New XmlSerializer(GetType(List(Of Vehicule)))
atelier.lesVehicules = Deserialiseur.Deserialize(FluxDeFichier)
FluxDeFichier.Close()
End If
End Sub
Fichier Vehicule.xml :
<?xml version="1.0"?>
<ArrayOfVehicule xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Vehicule>
<numImma>Avatar69</numImma>
<nbKmActuel>2009</nbKmActuel>
</Vehicule>
<Vehicule>
<numImma>2725KD43</numImma>
<nbKmActuel>220500</nbKmActuel>
</Vehicule>
<Vehicule>
<numImma>5609JK69</numImma>
<nbKmActuel>54000</nbKmActuel>
</Vehicule>
</ArrayOfVehicule>
Merci d'avance.
Lire la suite 

Désérialiser collection généric VB.NET (xml) »

1 réponses
Ce document intitulé « Désérialiser collection généric VB.NET (xml) » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?