Référence: https://support.microsoft.com/fr-fr/kb/316730
Résumé
back to the top
Configuration requise
La liste suivante met en évidence le matériel recommandé, les logiciels, l'infrastructure réseau et service packs dont vous avez besoin :- Microsoft Visual Studio .NET
- Microsoft Visual Basic .NET
- XML
Description de la sérialisation XML
La sérialisation est le processus par lequel vous stockez l'état d'un objet dans un flux de données. La sérialisation permet vous permet de faire persister l'état d'un objet afin que vous pouvez récupérer l'état ultérieurement. La sérialisation permet également de vous permet de cloner un objet existant pour créer un nouvel objet. L'espace de noms System.Xml.Serialization contient des classes que vous pouvez utiliser pour sérialiser des objets en XML.back to the top
Créer l'Application Console dans Visual Basic .NET
Dans cette section, vous créez une application console qui :- Désérialise un objet en XML.
- Enregistre la sérialisation XML dans un fichier texte.
- Lit le fichier XML dans le fichier texte pour créer un nouvel objet (désérialisation).
- Suivez ces étapes pour créer une nouvelle application console dans Visual Basic .NET :
- Démarrez Visual Studio .NET.
- Dans le menu fichier , pointez sur Nouveau, puis cliquez sur projet.
- Dans la boîte de dialogue Nouveau projet , cliquez sur Projets Visual Basic sous Types de projets, puis cliquez sur Application Console sous modèles.
- Suivez ces étapes pour ajouter une nouvelle classe au projet :
- Dans le menu projet , cliquez sur Ajouter une classe.
- Dans la boîte de dialogue Ajouter un nouvel élément , tapez clsProduct.vb dans le texte du nom de zone, puis cliquez surOuvrir.
- Remplacez le code dans la fenêtre de code de clsProduct.vb par le code suivant :
Public Class clsProduct Private mstrName As String Private mstrDescription As String Private mintQty As Integer Public Property Name() As String Get Name = mstrName End Get Set(ByVal Value As String) mstrName = Value End Set End Property Public Property Description() As String Get Description = mstrDescription End Get Set(ByVal Value As String) mstrDescription = Value End Set End Property Public Property Qty() As Integer Get Qty = mintQty End Get Set(ByVal Value As Integer) mintQty = Value End Set End Property End Class
- Basculer vers la fenêtre de code de Module1.vb, puis ajoutez le code suivant en haut de la fenêtre de code :
Imports System.IO Imports System.Xml.Serialization
- Dans la procédure Sub Main , ajoutez le code suivant pour créer et remplir une instance de la classe clsProduct :
'Set up product object. Dim p As New clsProduct() p.Name = "Widget" p.Description = "Faster, better, cheaper" p.Qty = 5
- Utilisez l'objet XmlSerializer pour sérialiser l'objet au format XML et enregistrer l'état d'objet dans un fichier texte. Pour ce faire, ajoutez le code suivant immédiatement avant l'instruction End Sub de la procédure Sub Main :
'Serialize object to a text file. Dim objStreamWriter As New StreamWriter("C:\Product.xml") Dim x As New XmlSerializer(p.GetType) x.Serialize(objStreamWriter, p) objStreamWriter.Close()
- Dans le menu Déboguer , cliquez sur Démarrer pour exécuter l'application.
- Ouvrez le fichier Product.xml dans le bloc-notes ou dans Microsoft Internet Explorer. Le contenu de ce fichier doit apparaître comme suit :
<?xml version="1.0" encoding="utf-8"?> <clsProduct xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <Name>Widget</Name> <Description>Faster, better, cheaper</Description> <Qty>5</Qty> </clsProduct>
- L'espace de noms Xml.Serialization permet de personnaliser les données générées par la classe XmlSerializer. Par exemple, dans la classe clsProduct , le champ Quantité est abrégé en tant que quantité Vous pouvez utiliser l'attribut XmlElementAttribute à modifier le champ de quantité lors de la sérialisation de la classe.
Basculer vers la fenêtre de code pour clsProduct.vb, puis ajoutez le code suivant en haut de la fenêtre de code :Imports System.Xml.Serialization
- Recherchez la procédure de propriété Qtéet puis insérez le code suivant immédiatement avant l'instruction Public Qty() propriété As Integer :
<XmlElementAttribute(ElementName:="Quantity")> _
- Dans le menu Déboguer , cliquez sur Démarrer pour exécuter l'application.
- Ouvrez le fichier Product.xml dans le bloc-notes ou dans Internet Explorer. Le contenu de ce fichier doit se présente comme suit :
<?xml version="1.0" encoding="utf-8"?> <clsProduct xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <Name>Widget</Name> <Description>Faster, better, cheaper</Description> <Quantity>5</Quantity> </clsProduct>
- Basculer vers la fenêtre de code de Module1.vb, puis ajoutez le code suivant à la procédure Sub Main immédiatement avant l'instruction End Sub :
'Deserialize text file to a new object. Dim objStreamReader As New StreamReader("C:\Product.xml") Dim p2 As New clsProduct() p2 = x.Deserialize(objStreamReader) objStreamReader.Close() 'Display property values of the new product object. Console.WriteLine(p2.Name) Console.WriteLine(p2.Description) Console.WriteLine(CStr(p2.Qty)) Console.ReadLine()
Vérifiez qu'il fonctionne
Dans le menu Déboguer , cliquez sur Démarrer pour exécuter l'application. Notez que les valeurs de propriété de p2 apparaissent dans la fenêtre de Console :Widget Faster, better, cheaper 5
Listing complet du Code
'Module1.vb
Imports System.Xml.Serialization
Imports System.IO
Module Module1
Sub Main()
'Set up product object.
Dim p As New clsProduct()
p.Name = "Widget"
p.Description = "Faster, better, cheaper"
p.Qty = 5
'Serialize object to a text file.
Dim objStreamWriter As New StreamWriter("C:\Product.xml")
Dim x As New XmlSerializer(p.GetType)
x.Serialize(objStreamWriter, p)
objStreamWriter.Close()
'Deserialize text file to a new object.
Dim objStreamReader As New StreamReader("C:\Product.xml")
Dim p2 As New clsProduct()
p2 = x.Deserialize(objStreamReader)
objStreamReader.Close()
'Display property values of the new product object.
Console.WriteLine(p2.Name)
Console.WriteLine(p2.Description)
Console.WriteLine(CStr(p2.Qty))
Console.ReadLine()
End Sub
End Module
'clsProduct.vb
Imports System.Xml.Serialization
Public Class clsProduct
Private mstrName As String
Private mstrDescription As String
Private mintQty As Integer
Public Property Name() As String
Get
Name = mstrName
End Get
Set(ByVal Value As String)
mstrName = Value
End Set
End Property
Public Property Description() As String
Get
Description = mstrDescription
End Get
Set(ByVal Value As String)
mstrDescription = Value
End Set
End Property
<XmlElementAttribute(ElementName:="Quantity")> _
Public Property Qty() As Integer
Get
Qty = mintQty
End Get
Set(ByVal Value As Integer)
mintQty = Value
End Set
End Property
End Class
Références
Exemples de sérialisation XML
http://msdn.Microsoft.com/en-us/library/aa719523.aspx
Membres de XmlSerializer
http://msdn2.Microsoft.com/en-us/library/System.Xml.Serialization.xmlserializer_members (vs.71).aspx
Espace de noms System.Xml.Serialization
http://msdn.Microsoft.com/en-us/library/System.Xml.Serialization.aspx
Fonctionnalités XML dans ADO.NET
http://msdn.Microsoft.com/en-us/library/ms810298.aspx
back to the tophttp://msdn.Microsoft.com/en-us/library/aa719523.aspx
Membres de XmlSerializer
http://msdn2.Microsoft.com/en-us/library/System.Xml.Serialization.xmlserializer_members (vs.71).aspx
Espace de noms System.Xml.Serialization
http://msdn.Microsoft.com/en-us/library/System.Xml.Serialization.aspx
Fonctionnalités XML dans ADO.NET
http://msdn.Microsoft.com/en-us/library/ms810298.aspx
Avertissement : Cet article a été traduit de manière automatique
Propriétés
ID d'article : 316730 - Dernière mise à jour : 11/23/2013 11:50:00 - Révision : 7.0
- Microsoft Visual Basic .NET 2003 Initiation
- Microsoft Visual Basic .NET 2002 Initiation
- Microsoft .NET Framework 1.1
- Microsoft .NET Framework 1.0
- kbhowtomaster kbmt KB316730 KbMtfr