XmlSerializer.Serialize Méthode

Définition

Sérialise un objet dans un document XML.

Surcharges

Nom Description
Serialize(XmlWriter, Object)

Sérialise le document XML spécifié Object et écrit le document XML dans un fichier à l’aide du fichier spécifié XmlWriter.

Serialize(XmlWriter, Object, XmlSerializerNamespaces, String, String)

Sérialise le document XML spécifié Object et écrit le document XML dans un fichier à l’aide des espaces de noms, des espaces de noms XML et de l’encodage spécifiés XmlWriter.

Serialize(XmlWriter, Object, XmlSerializerNamespaces, String)

Sérialise l’objet spécifié et écrit le document XML dans un fichier à l’aide des espaces de noms et du style d’encodage spécifiés XmlWriter .

Serialize(XmlWriter, Object, XmlSerializerNamespaces)

Sérialise le document XML spécifié Object et écrit le document XML dans un fichier à l’aide des espaces de noms spécifiés XmlWriter et référence les espaces de noms spécifiés.

Serialize(TextWriter, Object, XmlSerializerNamespaces)

Sérialise le document XML spécifié Object et écrit le document XML dans un fichier à l’aide des espaces de noms spécifiés TextWriter et référence les espaces de noms spécifiés.

Serialize(Object, XmlSerializationWriter)

Sérialise le document XML spécifié Object et écrit le document XML dans un fichier à l’aide du fichier spécifié XmlSerializationWriter.

Serialize(TextWriter, Object)

Sérialise le document XML spécifié Object et écrit le document XML dans un fichier à l’aide du fichier spécifié TextWriter.

Serialize(Stream, Object)

Sérialise le document XML spécifié Object et écrit le document XML dans un fichier à l’aide du fichier spécifié Stream.

Serialize(Stream, Object, XmlSerializerNamespaces)

Sérialise le document XML spécifié Object et écrit le document XML dans un fichier à l’aide de l’espace de noms spécifié Stream qui fait référence aux espaces de noms spécifiés.

Serialize(XmlWriter, Object)

Sérialise le document XML spécifié Object et écrit le document XML dans un fichier à l’aide du fichier spécifié XmlWriter.

public:
 void Serialize(System::Xml::XmlWriter ^ xmlWriter, System::Object ^ o);
public void Serialize(System.Xml.XmlWriter xmlWriter, object o);
member this.Serialize : System.Xml.XmlWriter * obj -> unit
Public Sub Serialize (xmlWriter As XmlWriter, o As Object)

Paramètres

xmlWriter
XmlWriter

Utilisé XmlWriter pour écrire le document XML.

o
Object

À Object sérialiser.

Exceptions

Une erreur s’est produite lors de la sérialisation. L’exception d’origine est disponible à l’aide de la InnerException propriété.

Exemples

L’exemple suivant sérialise un objet à l’aide d’un XmlWriter.

using System;
using System.IO;
using System.Text;
using System.Xml;
using System.Xml.Serialization;

// This is the class that will be serialized.
public class OrderedItem4
{
    public string ItemName;
    public string Description;
    public decimal UnitPrice;
    public int Quantity;
    public decimal LineTotal;
    // A custom method used to calculate price per item.
    public void Calculate()
    {
        LineTotal = UnitPrice * Quantity;
    }
}

public class Test4
{
    public static void Main()
    {
        Test4 t = new();
        // Write a purchase order.
        t.SerializeObject("simple.xml");
    }

    private void SerializeObject(string filename)
    {
        Console.WriteLine("Writing With XmlTextWriter");

        XmlSerializer serializer = new(typeof(OrderedItem4));
        OrderedItem4 i = new()
        {
            ItemName = "Widget",
            Description = "Regular Widget",
            Quantity = 10,
            UnitPrice = (decimal)2.30
        };
        i.Calculate();
        // Create an XmlTextWriter using a FileStream.
        Stream fs = new FileStream(filename, FileMode.Create);
        XmlTextWriter writer = new(fs, Encoding.Unicode);
        // Serialize using the XmlTextWriter.
        serializer.Serialize(writer, i);
        writer.Close();
    }
}
Imports System.IO
Imports System.Text
Imports System.Xml
Imports System.Xml.Serialization


' This is the class that will be serialized.
Public Class OrderedItem
    Public ItemName As String
    Public Description As String
    Public UnitPrice As Decimal
    Public Quantity As Integer
    Public LineTotal As Decimal
    
    ' A custom method used to calculate price per item.
    Public Sub Calculate()
        LineTotal = UnitPrice * Quantity
    End Sub
End Class


Public Class Test
    
    Public Shared Sub Main()
        Dim t As New Test()
        ' Write a purchase order.
        t.SerializeObject("simple.xml")
    End Sub
        
    Private Sub SerializeObject(ByVal filename As String)
        Console.WriteLine("Writing With XmlTextWriter")
        
        Dim serializer As New XmlSerializer(GetType(OrderedItem))
        Dim i As New OrderedItem()
        With i
            .ItemName = "Widget"
            .Description = "Regular Widget"
            .Quantity = 10
            .UnitPrice = CDec(2.3)
            .Calculate()
        End With
        ' Create an XmlTextWriter using a FileStream.
        Dim fs As New FileStream(filename, FileMode.Create)
        Dim writer As New XmlTextWriter(fs, Encoding.Unicode)
        ' Serialize using the XmlTextWriter.
        serializer.Serialize(writer, i)
        writer.Close()
    End Sub
End Class
<?xml version="1.0"?>
 <OrderedItem xmlns:inventory="http://www.cpandl.com" xmlns:money="http://www.cohowinery.com">
   <inventory:ItemName>Widget</inventory:ItemName>
   <inventory:Description>Regular Widget</inventory:Description>
   <money:UnitPrice>2.3</money:UnitPrice>
   <inventory:Quantity>10</inventory:Quantity>
   <money:LineTotal>23</money:LineTotal>
 </OrderedItem>

Remarques

La Serialize méthode convertit les champs publics et les propriétés en lecture/écriture d’un objet en XML. Elle ne convertit pas les méthodes, les indexeurs, les champs privés ou les propriétés en lecture seule.

Dans le xmlWriter paramètre, spécifiez un objet qui dérive de la classe abstraite XmlWriter . Les XmlTextWriter dérives du XmlWriter.

Note

Impossible XmlSerializer de sérialiser les tableaux suivants : tableaux et ArrayList tableaux de List<T>.

Voir aussi

S’applique à

Serialize(XmlWriter, Object, XmlSerializerNamespaces, String, String)

Sérialise le document XML spécifié Object et écrit le document XML dans un fichier à l’aide des espaces de noms, des espaces de noms XML et de l’encodage spécifiés XmlWriter.

public:
 void Serialize(System::Xml::XmlWriter ^ xmlWriter, System::Object ^ o, System::Xml::Serialization::XmlSerializerNamespaces ^ namespaces, System::String ^ encodingStyle, System::String ^ id);
public void Serialize(System.Xml.XmlWriter xmlWriter, object o, System.Xml.Serialization.XmlSerializerNamespaces namespaces, string encodingStyle, string id);
member this.Serialize : System.Xml.XmlWriter * obj * System.Xml.Serialization.XmlSerializerNamespaces * string * string -> unit
Public Sub Serialize (xmlWriter As XmlWriter, o As Object, namespaces As XmlSerializerNamespaces, encodingStyle As String, id As String)

Paramètres

xmlWriter
XmlWriter

Utilisé XmlWriter pour écrire le document XML.

o
Object

Objet à sérialiser.

namespaces
XmlSerializerNamespaces

Instance du XmlSerializerNamespaces fichier qui contient des espaces de noms et des préfixes à utiliser.

encodingStyle
String

Encodage utilisé dans le document.

id
String

Pour les messages encodés SOAP, la base utilisée pour générer des attributs d’ID.

Remarques

Le paramètre ID fournit la chaîne de base utilisée pour créer des ID SOAP. Par défaut, il s’agit de « id1 », « id2 », et ainsi de suite. Toutefois, si le paramètre est défini sur « myBase », les valeurs générées sont « myBaseid1 », « myBaseid2 », et ainsi de suite. Cette fonctionnalité est utilisée pour créer des valeurs d’ID uniques dans l’ensemble du message SOAP.

S’applique à

Serialize(XmlWriter, Object, XmlSerializerNamespaces, String)

Sérialise l’objet spécifié et écrit le document XML dans un fichier à l’aide des espaces de noms et du style d’encodage spécifiés XmlWriter .

public:
 void Serialize(System::Xml::XmlWriter ^ xmlWriter, System::Object ^ o, System::Xml::Serialization::XmlSerializerNamespaces ^ namespaces, System::String ^ encodingStyle);
public void Serialize(System.Xml.XmlWriter xmlWriter, object o, System.Xml.Serialization.XmlSerializerNamespaces namespaces, string encodingStyle);
member this.Serialize : System.Xml.XmlWriter * obj * System.Xml.Serialization.XmlSerializerNamespaces * string -> unit
Public Sub Serialize (xmlWriter As XmlWriter, o As Object, namespaces As XmlSerializerNamespaces, encodingStyle As String)

Paramètres

xmlWriter
XmlWriter

Utilisé XmlWriter pour écrire le document XML.

o
Object

Objet à sérialiser.

namespaces
XmlSerializerNamespaces

XmlSerializerNamespaces Référencé par l’objet.

encodingStyle
String

Style d’encodage du xml sérialisé.

Attributs

Exceptions

Une erreur s’est produite lors de la sérialisation. L’exception d’origine est disponible à l’aide de la InnerException propriété.

Remarques

Lorsque la Serialize méthode est appelée, les champs publics et les propriétés de lecture/écriture d’un objet sont convertis en XML. Les méthodes, les indexeurs, les champs privés et les propriétés en lecture seule ne sont pas sérialisées.

Utilisez le xmlWriter paramètre pour spécifier un objet qui dérive de la classe abstraite XmlWriter , qui est conçu pour écrire des documents XML. Les XmlTextWriter dérives du XmlWriter.

Définissez le encodingStyle paramètre sur «http://schemas.xmlsoap.org/soap/encoding/" ; pour l’encodage SOAP version 1.1 ; sinon, définissez-le sur «http://www.w3.org/2001/12/soap-encoding" ; pour l’encodage SOAP version 1.2.

Note

Impossible XmlSerializer de sérialiser les tableaux suivants : tableaux et ArrayList tableaux de List<T>.

Voir aussi

S’applique à

Serialize(XmlWriter, Object, XmlSerializerNamespaces)

Sérialise le document XML spécifié Object et écrit le document XML dans un fichier à l’aide des espaces de noms spécifiés XmlWriter et référence les espaces de noms spécifiés.

public:
 void Serialize(System::Xml::XmlWriter ^ xmlWriter, System::Object ^ o, System::Xml::Serialization::XmlSerializerNamespaces ^ namespaces);
public void Serialize(System.Xml.XmlWriter xmlWriter, object o, System.Xml.Serialization.XmlSerializerNamespaces namespaces);
member this.Serialize : System.Xml.XmlWriter * obj * System.Xml.Serialization.XmlSerializerNamespaces -> unit
Public Sub Serialize (xmlWriter As XmlWriter, o As Object, namespaces As XmlSerializerNamespaces)

Paramètres

xmlWriter
XmlWriter

Utilisé XmlWriter pour écrire le document XML.

o
Object

À Object sérialiser.

namespaces
XmlSerializerNamespaces

XmlSerializerNamespaces Référencé par l’objet.

Exceptions

Une erreur s’est produite lors de la sérialisation. L’exception d’origine est disponible à l’aide de la InnerException propriété.

Exemples

L’exemple suivant sérialise un objet avec un XmlWriter. L’exemple crée également un XmlSerializerNamespaces espace de noms et ajoute deux espaces de noms à l’objet. Plusieurs instances de la XmlElementAttribute classe sont appliquées aux membres de la classe pour spécifier l’espace de noms pour chaque élément.

using System;
using System.IO;
using System.Text;
using System.Xml;
using System.Xml.Serialization;

// This is the class that will be serialized.
public class OrderedItem5
{
    [XmlElement(Namespace = "http://www.cpandl.com")]
    public string ItemName;
    [XmlElement(Namespace = "http://www.cpandl.com")]
    public string Description;
    [XmlElement(Namespace = "http://www.cohowinery.com")]
    public decimal UnitPrice;
    [XmlElement(Namespace = "http://www.cpandl.com")]
    public int Quantity;
    [XmlElement(Namespace = "http://www.cohowinery.com")]
    public decimal LineTotal;
    // A custom method used to calculate price per item.
    public void Calculate()
    {
        LineTotal = UnitPrice * Quantity;
    }
}

public class Test5
{
    public static void Main()
    {
        Test5 t = new();
        // Write a purchase order.
        t.SerializeObject("simple.xml");
    }

    private void SerializeObject(string filename)
    {
        Console.WriteLine("Writing With XmlTextWriter");

        XmlSerializer serializer = new(typeof(OrderedItem5));
        OrderedItem5 i = new()
        {
            ItemName = "Widget",
            Description = "Regular Widget",
            Quantity = 10,
            UnitPrice = (decimal)2.30
        };
        i.Calculate();

        // Create an XmlSerializerNamespaces object.
        XmlSerializerNamespaces ns = new();

        // Add two namespaces with prefixes.
        ns.Add("inventory", "http://www.cpandl.com");
        ns.Add("money", "http://www.cohowinery.com");

        // Create an XmlTextWriter using a FileStream.
        Stream fs = new FileStream(filename, FileMode.Create);
        XmlTextWriter writer = new(fs, new UTF8Encoding());

        // Serialize using the XmlTextWriter.
        serializer.Serialize(writer, i, ns);
        writer.Close();
    }
}
Imports System.IO
Imports System.Text
Imports System.Xml
Imports System.Xml.Serialization


' This is the class that will be serialized.
Public Class OrderedItem
    <XmlElement(Namespace := "http://www.cpandl.com")> _
    Public ItemName As String
    
    <XmlElement(Namespace := "http://www.cpandl.com")> _
    Public Description As String
    
    <XmlElement(Namespace := "http://www.cohowinery.com")> _
    Public UnitPrice As Decimal
    
    <XmlElement(Namespace := "http://www.cpandl.com")> _
    Public Quantity As Integer
    
    <XmlElement(Namespace := "http://www.cohowinery.com")> _
    Public LineTotal As Decimal
    
    'A custom method used to calculate price per item.
    Public Sub Calculate()
        LineTotal = UnitPrice * Quantity
    End Sub
End Class


Public Class Test
    
    Public Shared Sub Main()
        Dim t As New Test()
        ' Write a purchase order.
        t.SerializeObject("simple.xml")
    End Sub    
    
    Private Sub SerializeObject(ByVal filename As String)
        Console.WriteLine("Writing With XmlTextWriter")
        
        Dim serializer As New XmlSerializer(GetType(OrderedItem))
        Dim i As New OrderedItem()
        With i
            .ItemName = "Widget"
            .Description = "Regular Widget"
            .Quantity = 10
            .UnitPrice = CDec(2.3)
            .Calculate()
        End With
        
        ' Create an XmlSerializerNamespaces object.
        Dim ns As New XmlSerializerNamespaces()
        ' Add two namespaces with prefixes.
        ns.Add("inventory", "http://www.cpandl.com")
        ns.Add("money", "http://www.cohowinery.com")
        ' Create an XmlTextWriter using a FileStream.
        Dim fs As New FileStream(filename, FileMode.Create)
        Dim writer As New XmlTextWriter(fs, New UTF8Encoding())
        ' Serialize using the XmlTextWriter.
        serializer.Serialize(writer, i, ns)
        writer.Close()
    End Sub
End Class
<?xml version="1.0"?>
 <OrderedItem xmlns:inventory="http://www.cpandl.com" xmlns:money="http://www.cohowinery.com">
   <inventory:ItemName>Widget</inventory:ItemName>
   <inventory:Description>Regular Widget</inventory:Description>
   <money:UnitPrice>2.3</money:UnitPrice>
   <inventory:Quantity>10</inventory:Quantity>
   <money:LineTotal>23</money:LineTotal>
 </OrderedItem>

Remarques

Lorsque la Serialize méthode est appelée, les champs publics et les propriétés de lecture/écriture d’un objet sont convertis en XML. Les méthodes, les indexeurs, les champs privés et les propriétés en lecture seule ne sont pas sérialisées.

Utilisez le xmlWriter paramètre pour spécifier un objet qui dérive de la classe abstraite XmlWriter , qui est conçu pour écrire des documents XML. Les XmlTextWriter dérives du XmlWriter.

Note

Impossible XmlSerializer de sérialiser les tableaux suivants : tableaux et ArrayList tableaux de List<T>.

Voir aussi

S’applique à

Serialize(TextWriter, Object, XmlSerializerNamespaces)

Sérialise le document XML spécifié Object et écrit le document XML dans un fichier à l’aide des espaces de noms spécifiés TextWriter et référence les espaces de noms spécifiés.

public:
 void Serialize(System::IO::TextWriter ^ textWriter, System::Object ^ o, System::Xml::Serialization::XmlSerializerNamespaces ^ namespaces);
public void Serialize(System.IO.TextWriter textWriter, object o, System.Xml.Serialization.XmlSerializerNamespaces namespaces);
member this.Serialize : System.IO.TextWriter * obj * System.Xml.Serialization.XmlSerializerNamespaces -> unit
Public Sub Serialize (textWriter As TextWriter, o As Object, namespaces As XmlSerializerNamespaces)

Paramètres

textWriter
TextWriter

Utilisé TextWriter pour écrire le document XML.

o
Object

À Object sérialiser.

namespaces
XmlSerializerNamespaces

Qui XmlSerializerNamespaces contient des espaces de noms pour le document XML généré.

Exceptions

Une erreur s’est produite lors de la sérialisation. L’exception d’origine est disponible à l’aide de la InnerException propriété.

Exemples

L’exemple suivant sérialise un objet avec un TextWriter. L’exemple crée également un XmlSerializerNamespaces objet et ajoute deux espaces de noms à l’objet. La classe qui définit l’objet sérialisé est également attribuée avec XmlElementAttribute des attributs pour spécifier l’espace de noms pour chaque élément.

using System;
using System.IO;
using System.Xml.Serialization;

// This is the class that will be serialized.
public class OrderedItem1
{
    [XmlElement(Namespace = "http://www.cpandl.com")]
    public string ItemName;
    [XmlElement(Namespace = "http://www.cpandl.com")]
    public string Description;
    [XmlElement(Namespace = "http://www.cohowinery.com")]
    public decimal UnitPrice;
    [XmlElement(Namespace = "http://www.cpandl.com")]
    public int Quantity;
    [XmlElement(Namespace = "http://www.cohowinery.com")]
    public decimal LineTotal;
    // A custom method used to calculate price per item.
    public void Calculate()
    {
        LineTotal = UnitPrice * Quantity;
    }
}

public class Test1
{
    public static void Main(string[] args)
    {
        Test1 t = new();
        // Write a purchase order.
        t.SerializeObject("simple.xml");
    }

    private void SerializeObject(string filename)
    {
        Console.WriteLine("Writing With TextWriter");
        // Create an XmlSerializer instance using the type.
        XmlSerializer serializer = new(typeof(OrderedItem1));
        OrderedItem1 i = new()
        {
            ItemName = "Widget",
            Description = "Regular Widget",
            Quantity = 10,
            UnitPrice = (decimal)2.30
        };
        i.Calculate();

        // Create an XmlSerializerNamespaces object.
        XmlSerializerNamespaces ns = new();
        // Add two namespaces with prefixes.
        ns.Add("inventory", "http://www.cpandl.com");
        ns.Add("money", "http://www.cohowinery.com");
        // Create a StreamWriter to write with.
        StreamWriter writer = new(filename);
        /* Serialize using the object using the TextWriter
        and namespaces. */
        serializer.Serialize(writer, i, ns);
        writer.Close();
    }
}
Imports System.IO
Imports System.Xml.Serialization


' This is the class that will be serialized.
Public Class OrderedItem
    <XmlElement(Namespace := "http://www.cpandl.com")> _
    Public ItemName As String
    
    <XmlElement(Namespace := "http://www.cpandl.com")> _
    Public Description As String
    
    <XmlElement(Namespace := "http://www.cohowinery.com")> _
    Public UnitPrice As Decimal
    
    <XmlElement(Namespace := "http://www.cpandl.com")> _
    Public Quantity As Integer
    
    <XmlElement(Namespace := "http://www.cohowinery.com")> _
    Public LineTotal As Decimal
    
    'A custom method used to calculate price per item.
    Public Sub Calculate()
        LineTotal = UnitPrice * Quantity
    End Sub
End Class


Public Class Test
    
    Public Shared Sub Main()
        Dim t As New Test()
        ' Write a purchase order.
        t.SerializeObject("simple.xml")
    End Sub
    
    Private Sub SerializeObject(ByVal filename As String)
        Console.WriteLine("Writing With TextWriter")
        ' Create an XmlSerializer instance using the type.
        Dim serializer As New XmlSerializer(GetType(OrderedItem))
        Dim i As New OrderedItem()
        i.ItemName = "Widget"
        i.Description = "Regular Widget"
        i.Quantity = 10
        i.UnitPrice = CDec(2.3)
        i.Calculate()
        
        ' Create an XmlSerializerNamespaces object.
        Dim ns As New XmlSerializerNamespaces()
        ' Add two namespaces with prefixes.
        ns.Add("inventory", "http://www.cpandl.com")
        ns.Add("money", "http://www.cohowinery.com")
        ' Create a StreamWriter to write with.
        Dim writer As New StreamWriter(filename)
        ' Serialize using the object using the TextWriter
        ' and namespaces. 
        serializer.Serialize(writer, i, ns)
        writer.Close()
    End Sub
End Class
<?xml version="1.0"?>
 <OrderedItem xmlns:inventory="http://www.cpandl.com" xmlns:money="http://www.cohowinery.com">
   <inventory:ItemName>Widget</inventory:ItemName>
   <inventory:Description>Regular Widget</inventory:Description>
   <money:UnitPrice>2.3</money:UnitPrice>
   <inventory:Quantity>10</inventory:Quantity>
   <money:LineTotal>23</money:LineTotal>
 </OrderedItem>

Remarques

Lorsque la Serialize méthode est appelée, les champs publics et les propriétés en lecture/écriture d’un objet sont converties en XML. Les méthodes, les indexeurs, les champs privés et les propriétés en lecture seule ne sont pas sérialisées.

Utilisez le textWriter paramètre pour spécifier un objet qui dérive de la classe abstraite TextWriter . Les classes qui dérivent de TextWriter la classe sont les suivantes :

Note

Impossible XmlSerializer de sérialiser les tableaux suivants : tableaux et ArrayList tableaux de List<T>.

Voir aussi

S’applique à

Serialize(Object, XmlSerializationWriter)

Sérialise le document XML spécifié Object et écrit le document XML dans un fichier à l’aide du fichier spécifié XmlSerializationWriter.

protected:
 virtual void Serialize(System::Object ^ o, System::Xml::Serialization::XmlSerializationWriter ^ writer);
protected virtual void Serialize(object o, System.Xml.Serialization.XmlSerializationWriter writer);
abstract member Serialize : obj * System.Xml.Serialization.XmlSerializationWriter -> unit
override this.Serialize : obj * System.Xml.Serialization.XmlSerializationWriter -> unit
Protected Overridable Sub Serialize (o As Object, writer As XmlSerializationWriter)

Paramètres

o
Object

À Object sérialiser.

writer
XmlSerializationWriter

Utilisé XmlSerializationWriter pour écrire le document XML.

Exceptions

Toute tentative d’accès à la méthode lorsque la méthode n’est pas substituée dans une classe descendante.

S’applique à

Serialize(TextWriter, Object)

Sérialise le document XML spécifié Object et écrit le document XML dans un fichier à l’aide du fichier spécifié TextWriter.

public:
 void Serialize(System::IO::TextWriter ^ textWriter, System::Object ^ o);
public void Serialize(System.IO.TextWriter textWriter, object o);
member this.Serialize : System.IO.TextWriter * obj -> unit
Public Sub Serialize (textWriter As TextWriter, o As Object)

Paramètres

textWriter
TextWriter

Utilisé TextWriter pour écrire le document XML.

o
Object

À Object sérialiser.

Exemples

L’exemple suivant sérialise un objet à l’aide d’un TextWriter.

using System;
using System.IO;
using System.Text;
using System.Xml.Serialization;

// This is the class that will be serialized.
public class OrderedItem
{
    public string ItemName;
    public string Description;
    public decimal UnitPrice;
    public int Quantity;
    public decimal LineTotal;
    // A custom method used to calculate price per item.
    public void Calculate()
    {
        LineTotal = UnitPrice * Quantity;
    }
}

public class Test
{
    public static void Main(string[] args)
    {
        Test t = new();
        // Write a purchase order.
        t.SerializeObject("simple.xml");
    }

    private void SerializeObject(string filename)
    {
        Console.WriteLine("Writing With TextWriter");

        XmlSerializer serializer = new(typeof(OrderedItem));
        OrderedItem i = new()
        {
            ItemName = "Widget",
            Description = "Regular Widget",
            Quantity = 10,
            UnitPrice = (decimal)2.30
        };
        i.Calculate();

        /* Create a StreamWriter to write with. First create a FileStream
           object, and create the StreamWriter specifying an Encoding to use. */
        FileStream fs = new(filename, FileMode.Create);
        StreamWriter writer = new(fs, new UTF8Encoding());
        // Serialize using the XmlTextWriter.
        serializer.Serialize(writer, i);
        writer.Close();
    }
}
Imports System.IO
Imports System.Text
Imports System.Xml.Serialization


' This is the class that will be serialized.
Public Class OrderedItem
    Public ItemName As String
    Public Description As String
    Public UnitPrice As Decimal
    Public Quantity As Integer
    Public LineTotal As Decimal
    
    'A custom method used to calculate price per item.
    Public Sub Calculate()
        LineTotal = UnitPrice * Quantity
    End Sub
End Class


Public Class Test
    
    Public Shared Sub Main()
        Dim t As New Test()
        ' Write a purchase order.
        t.SerializeObject("simple.xml")
    End Sub
    
    Private Sub SerializeObject(ByVal filename As String)
        Console.WriteLine("Writing With TextWriter")
        
        Dim serializer As New XmlSerializer(GetType(OrderedItem))
        Dim i As New OrderedItem()

        With i
            .ItemName = "Widget"
            .Description = "Regular Widget"
            .Quantity = 10
            .UnitPrice = CDec(2.3)
            .Calculate()
        End With
        
        ' Create a StreamWriter to write with. First create a FileStream
        ' object, and create the StreamWriter specifying an Encoding to use. 
        Dim fs As New FileStream(filename, FileMode.Create)
        Dim writer As New StreamWriter(fs, New UTF8Encoding())
        ' Serialize using the XmlTextWriter.
        serializer.Serialize(writer, i)
        writer.Close()
    End Sub
End Class
<?xml version="1.0"?>
 <OrderedItem xmlns:inventory="http://www.cpandl.com" xmlns:money="http://www.cohowinery.com">
   <inventory:ItemName>Widget</inventory:ItemName>
   <inventory:Description>Regular Widget</inventory:Description>
   <money:UnitPrice>2.3</money:UnitPrice>
   <inventory:Quantity>10</inventory:Quantity>
   <money:LineTotal>23</money:LineTotal>
 </OrderedItem>

Remarques

La Serialize méthode convertit les champs publics et les propriétés en lecture/écriture d’un objet en XML. Elle ne convertit pas les méthodes, les indexeurs, les champs privés ou les propriétés en lecture seule.

Dans le textWriter paramètre, spécifiez un objet qui dérive de la classe abstraite TextWriter . Les classes dérivées d’include TextWriter :

Note

Impossible XmlSerializer de sérialiser les tableaux suivants : tableaux et ArrayList tableaux de List<T>.

Voir aussi

S’applique à

Serialize(Stream, Object)

Sérialise le document XML spécifié Object et écrit le document XML dans un fichier à l’aide du fichier spécifié Stream.

public:
 void Serialize(System::IO::Stream ^ stream, System::Object ^ o);
public void Serialize(System.IO.Stream stream, object o);
member this.Serialize : System.IO.Stream * obj -> unit
Public Sub Serialize (stream As Stream, o As Object)

Paramètres

stream
Stream

Utilisé Stream pour écrire le document XML.

o
Object

À Object sérialiser.

Exceptions

Une erreur s’est produite lors de la sérialisation. L’exception d’origine est disponible à l’aide de la InnerException propriété.

Exemples

L’exemple suivant sérialise un objet à l’aide d’un Stream objet.

using System;
using System.IO;
using System.Xml.Serialization;

// This is the class that will be serialized.
public class OrderedItem2
{
    public string ItemName;
    public string Description;
    public decimal UnitPrice;
    public int Quantity;
    public decimal LineTotal;

    // A custom method used to calculate price per item.
    public void Calculate()
    {
        LineTotal = UnitPrice * Quantity;
    }
}

public class Test2
{
    public static void Main(string[] args)
    {
        Test2 t = new();
        // Write a purchase order.
        t.SerializeObject("simple.xml");
    }

    private void SerializeObject(string filename)
    {
        Console.WriteLine("Writing With Stream");

        XmlSerializer serializer = new(typeof(OrderedItem2));
        OrderedItem2 i = new()
        {
            ItemName = "Widget",
            Description = "Regular Widget",
            Quantity = 10,
            UnitPrice = (decimal)2.30
        };
        i.Calculate();

        // Create a FileStream to write with.
        FileStream writer = new(filename, FileMode.Create);
        // Serialize the object, and close the TextWriter
        serializer.Serialize(writer, i);
        writer.Close();
    }
}
Imports System.IO
Imports System.Xml.Serialization


' This is the class that will be serialized.
Public Class OrderedItem
    Public ItemName As String
    Public Description As String
    Public UnitPrice As Decimal
    Public Quantity As Integer
    Public LineTotal As Decimal
    
    
    ' A custom method used to calculate price per item.
    Public Sub Calculate()
        LineTotal = UnitPrice * Quantity
    End Sub
End Class


Public Class Test
    
    Public Shared Sub Main()
        Dim t As New Test()
        ' Write a purchase order.
        t.SerializeObject("simple.xml")
    End Sub
    
    Private Sub SerializeObject(ByVal filename As String)
        Console.WriteLine("Writing With Stream")
        
        Dim serializer As New XmlSerializer(GetType(OrderedItem))
        Dim i As New OrderedItem()

        With i
            .ItemName = "Widget"
            .Description = "Regular Widget"
            .Quantity = 10
            .UnitPrice = CDec(2.3)
            .Calculate()
        End With
        
        ' Create a FileStream to write with.
        Dim writer As New FileStream(filename, FileMode.Create)
        ' Serialize the object, and close the TextWriter
        serializer.Serialize(writer, i)
        writer.Close()
    End Sub
End Class
<?xml version="1.0"?>
 <OrderedItem xmlns:inventory="http://www.cpandl.com" xmlns:money="http://www.cohowinery.com">
   <inventory:ItemName>Widget</inventory:ItemName>
   <inventory:Description>Regular Widget</inventory:Description>
   <money:UnitPrice>2.3</money:UnitPrice>
   <inventory:Quantity>10</inventory:Quantity>
   <money:LineTotal>23</money:LineTotal>
 </OrderedItem>

Remarques

La Serialize méthode convertit les champs publics et les propriétés en lecture/écriture d’un objet en XML. Elle ne convertit pas les méthodes, les indexeurs, les champs privés ou les propriétés en lecture seule.

Dans le stream paramètre, spécifiez un objet qui dérive de la classe abstraite Stream . Les classes dérivées d’include Stream :

Note

Impossible XmlSerializer de sérialiser les tableaux suivants : tableaux et ArrayList tableaux de List<T>.

Voir aussi

S’applique à

Serialize(Stream, Object, XmlSerializerNamespaces)

Sérialise le document XML spécifié Object et écrit le document XML dans un fichier à l’aide de l’espace de noms spécifié Stream qui fait référence aux espaces de noms spécifiés.

public:
 void Serialize(System::IO::Stream ^ stream, System::Object ^ o, System::Xml::Serialization::XmlSerializerNamespaces ^ namespaces);
public void Serialize(System.IO.Stream stream, object o, System.Xml.Serialization.XmlSerializerNamespaces namespaces);
member this.Serialize : System.IO.Stream * obj * System.Xml.Serialization.XmlSerializerNamespaces -> unit
Public Sub Serialize (stream As Stream, o As Object, namespaces As XmlSerializerNamespaces)

Paramètres

stream
Stream

Utilisé Stream pour écrire le document XML.

o
Object

À Object sérialiser.

namespaces
XmlSerializerNamespaces

XmlSerializerNamespaces Référencé par l’objet.

Exceptions

Une erreur s’est produite lors de la sérialisation. L’exception d’origine est disponible à l’aide de la InnerException propriété.

Exemples

L’exemple suivant sérialise un objet avec un Stream objet. L’exemple crée également un XmlSerializerNamespaces espace de noms et ajoute deux espaces de noms à l’objet. La classe qui définit l’objet sérialisé est également attribuée avec XmlElementAttribute des attributs pour spécifier l’espace de noms pour chaque élément.

using System;
using System.IO;
using System.Xml.Serialization;

// This is the class that will be serialized.
public class OrderedItem3
{
    [XmlElement(Namespace = "http://www.cpandl.com")]
    public string ItemName;
    [XmlElement(Namespace = "http://www.cpandl.com")]
    public string Description;
    [XmlElement(Namespace = "http://www.cohowinery.com")]
    public decimal UnitPrice;
    [XmlElement(Namespace = "http://www.cpandl.com")]
    public int Quantity;
    [XmlElement(Namespace = "http://www.cohowinery.com")]
    public decimal LineTotal;

    // A custom method used to calculate price per item.
    public void Calculate()
    {
        LineTotal = UnitPrice * Quantity;
    }
}

public class Test3
{
    public static void Main()
    {
        Test3 t = new();
        // Write a purchase order.
        t.SerializeObject("simple.xml");
        t.DeserializeObject("simple.xml");
    }

    private void SerializeObject(string filename)
    {
        Console.WriteLine("Writing With Stream");

        XmlSerializer serializer =
            new(typeof(OrderedItem3));

        OrderedItem3 i = new()
        {
            ItemName = "Widget",
            Description = "Regular Widget",
            Quantity = 10,
            UnitPrice = (decimal)2.30
        };
        i.Calculate();

        // Create an XmlSerializerNamespaces object.
        XmlSerializerNamespaces ns = new();

        // Add two prefix-namespace pairs.
        ns.Add("inventory", "http://www.cpandl.com");
        ns.Add("money", "http://www.cohowinery.com");

        // Create a FileStream to write with.
        FileStream writer = new(filename, FileMode.Create);

        // Serialize the object, and close the TextWriter
        serializer.Serialize(writer, i, ns);
        writer.Close();
    }

    private void DeserializeObject(string filename)
    {
        Console.WriteLine("Reading with Stream");
        // Create an instance of the XmlSerializer.
        XmlSerializer serializer = new(typeof(OrderedItem3));

        // Writing the file requires a Stream.
        Stream reader = new FileStream(filename, FileMode.Open);

        // Declare an object variable of the type to be deserialized.
        OrderedItem3 i;

        /* Use the Deserialize method to restore the object's state
           using data from the XML document. */
        i = (OrderedItem3)serializer.Deserialize(reader);

        // Write out the properties of the object.
        Console.Write(
            i.ItemName + "\t" +
            i.Description + "\t" +
            i.UnitPrice + "\t" +
            i.Quantity + "\t" +
            i.LineTotal);
    }
}
Imports System.IO
Imports System.Xml.Serialization

' This is the class that will be serialized.
Public Class OrderedItem
    <XmlElement(Namespace := "http://www.cpandl.com")> _
    Public ItemName As String
    
    <XmlElement(Namespace := "http://www.cpandl.com")> _
    Public Description As String
    
    <XmlElement(Namespace := "http://www.cohowinery.com")> _
    Public UnitPrice As Decimal
    
    <XmlElement(Namespace := "http://www.cpandl.com")> _
    Public Quantity As Integer
    
    <XmlElement(Namespace := "http://www.cohowinery.com")> _
    Public LineTotal As Decimal
    
    ' A custom method used to calculate price per item.
    Public Sub Calculate()
        LineTotal = UnitPrice * Quantity
    End Sub
End Class

Public Class Test
        
    Public Shared Sub Main()
        Dim t As New Test()
        ' Write a purchase order.
        t.SerializeObject("simple.xml")
        t.DeserializeObject("simple.xml")
    End Sub    
    
    Private Sub SerializeObject(ByVal filename As String)
        Console.WriteLine("Writing With Stream")
        
        Dim serializer As New XmlSerializer(GetType(OrderedItem))
        
        Dim i As New OrderedItem()
        With i
            .ItemName = "Widget"
            .Description = "Regular Widget"
            .Quantity = 10
            .UnitPrice = CDec(2.3)
            .Calculate()
        End With
        
        ' Create an XmlSerializerNamespaces object.
        Dim ns As New XmlSerializerNamespaces()
        
        ' Add two prefix-namespace pairs.
        ns.Add("inventory", "http://www.cpandl.com")
        ns.Add("money", "http://www.cohowinery.com")
        
        ' Create a FileStream to write with.
        Dim writer As New FileStream(filename, FileMode.Create)
        
        ' Serialize the object, and close the TextWriter
        serializer.Serialize(writer, i, ns)
        writer.Close()
    End Sub
        
    Private Sub DeserializeObject(ByVal filename As String)
        Console.WriteLine("Reading with Stream")
        ' Create an instance of the XmlSerializer.
        Dim serializer As New XmlSerializer(GetType(OrderedItem))
        
        ' Writing the file requires a Stream.
        Dim reader As New FileStream(filename, FileMode.Open)
        
        ' Declare an object variable of the type to be deserialized.
        Dim i As OrderedItem
        
        ' Use the Deserialize method to restore the object's state
        ' using data from the XML document. 
        i = CType(serializer.Deserialize(reader), OrderedItem)
        
        ' Write out the properties of the object.
        Console.Write(i.ItemName & ControlChars.Tab & _
                      i.Description & ControlChars.Tab & _
                      i.UnitPrice & ControlChars.Tab & _
                      i.Quantity & ControlChars.Tab & _
                      i.LineTotal)
    End Sub
End Class

Remarques

Lorsque la Serialize méthode est appelée, les champs publics et les propriétés de lecture/écriture d’un objet sont convertis en XML. Les méthodes, les indexeurs, les champs privés et les propriétés en lecture seule ne sont pas sérialisées.

Utilisez le stream paramètre pour spécifier un objet qui dérive de la classe abstraite Stream , qui est conçu pour écrire dans des flux. Les classes qui dérivent de la Stream classe sont les suivantes :

Note

Impossible XmlSerializer de sérialiser les tableaux suivants : tableaux et ArrayList tableaux de List<T>.

Voir aussi

S’applique à