XmlSerializer.Serialize Méthode

Définition

Sérialise un objet en document XML.

Surcharges

Serialize(XmlWriter, Object)

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

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

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

Serialize(XmlWriter, Object, XmlSerializerNamespaces, String)

Sérialise l'objet spécifié et écrit le document XML dans un fichier à l'aide du XmlWriter et référence les espaces de noms spécifiés et le style d'encodage.

Serialize(XmlWriter, Object, XmlSerializerNamespaces)

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

Serialize(TextWriter, Object, XmlSerializerNamespaces)

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

Serialize(Object, XmlSerializationWriter)

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

Serialize(TextWriter, Object)

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

Serialize(Stream, Object)

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

Serialize(Stream, Object, XmlSerializerNamespaces)

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

Serialize(XmlWriter, Object)

Source:
XmlSerializer.cs
Source:
XmlSerializer.cs
Source:
XmlSerializer.cs

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

C#
public void Serialize (System.Xml.XmlWriter xmlWriter, object o);
C#
public void Serialize (System.Xml.XmlWriter xmlWriter, object? o);

Paramètres

xmlWriter
XmlWriter

XmlWriter qui permet d'é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 via l'utilisation de la propriété InnerException.

Exemples

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

C#
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();
    }
}
XML
<?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. Il 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 . dérive XmlTextWriter de .XmlWriter

Notes

Ne XmlSerializer peut pas sérialiser les tableaux de ArrayList et les tableaux de List<T>.

Voir aussi

S’applique à

.NET 9 et autres versions
Produit Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1
UWP 10.0

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

Source:
XmlSerializer.cs
Source:
XmlSerializer.cs
Source:
XmlSerializer.cs

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

C#
public void Serialize (System.Xml.XmlWriter xmlWriter, object? o, System.Xml.Serialization.XmlSerializerNamespaces? namespaces, string? encodingStyle, string? id);
C#
public void Serialize (System.Xml.XmlWriter xmlWriter, object o, System.Xml.Serialization.XmlSerializerNamespaces namespaces, string encodingStyle, string id);

Paramètres

xmlWriter
XmlWriter

XmlWriter qui permet d'écrire le document XML.

o
Object

L'objet à sérialiser.

namespaces
XmlSerializerNamespaces

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

encodingStyle
String

Encodage utilisé dans le document.

id
String

Pour les messages encodés par 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 », etc. Mais si le paramètre est défini sur « myBase », les valeurs générées sont « myBaseid1 », « myBaseid2 », etc. Cette fonctionnalité est utilisée pour créer des valeurs d’ID uniques dans l’ensemble du message SOAP.

S’applique à

.NET 9 et autres versions
Produit Versions
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

Serialize(XmlWriter, Object, XmlSerializerNamespaces, String)

Source:
XmlSerializer.cs
Source:
XmlSerializer.cs
Source:
XmlSerializer.cs

Sérialise l'objet spécifié et écrit le document XML dans un fichier à l'aide du XmlWriter et référence les espaces de noms spécifiés et le style d'encodage.

C#
public void Serialize (System.Xml.XmlWriter xmlWriter, object? o, System.Xml.Serialization.XmlSerializerNamespaces? namespaces, string? encodingStyle);
C#
public void Serialize (System.Xml.XmlWriter xmlWriter, object o, System.Xml.Serialization.XmlSerializerNamespaces namespaces, string encodingStyle);

Paramètres

xmlWriter
XmlWriter

XmlWriter qui permet d'écrire le document XML.

o
Object

L'objet à sérialiser.

namespaces
XmlSerializerNamespaces

XmlSerializerNamespaces référencé par l'objet.

encodingStyle
String

Style d'encodage du XML sérialisé.

Exceptions

Une erreur s'est produite lors de la sérialisation. L'exception d'origine est disponible via l'utilisation de la propriété InnerException.

Remarques

Lorsque la Serialize méthode est appelée, les champs publics et les propriétés en 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és.

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

Définissez le paramètre sur encodingStyle «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.

Notes

Ne XmlSerializer peut pas sérialiser les tableaux de ArrayList et les tableaux de List<T>.

Voir aussi

S’applique à

.NET 9 et autres versions
Produit Versions
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

Serialize(XmlWriter, Object, XmlSerializerNamespaces)

Source:
XmlSerializer.cs
Source:
XmlSerializer.cs
Source:
XmlSerializer.cs

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

C#
public void Serialize (System.Xml.XmlWriter xmlWriter, object o, System.Xml.Serialization.XmlSerializerNamespaces namespaces);
C#
public void Serialize (System.Xml.XmlWriter xmlWriter, object? o, System.Xml.Serialization.XmlSerializerNamespaces? namespaces);

Paramètres

xmlWriter
XmlWriter

XmlWriter qui permet d'é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 via l'utilisation de la propriété InnerException.

Exemples

L’exemple suivant sérialise un objet avec un XmlWriter. L’exemple crée également un XmlSerializerNamespaces 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.

C#
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();
    }
}
XML
<?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 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és.

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

Notes

Ne XmlSerializer peut pas sérialiser les tableaux de ArrayList et les tableaux de List<T>.

Voir aussi

S’applique à

.NET 9 et autres versions
Produit Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1
UWP 10.0

Serialize(TextWriter, Object, XmlSerializerNamespaces)

Source:
XmlSerializer.cs
Source:
XmlSerializer.cs
Source:
XmlSerializer.cs

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

C#
public void Serialize (System.IO.TextWriter textWriter, object o, System.Xml.Serialization.XmlSerializerNamespaces namespaces);
C#
public void Serialize (System.IO.TextWriter textWriter, object? o, System.Xml.Serialization.XmlSerializerNamespaces? namespaces);

Paramètres

textWriter
TextWriter

TextWriter qui permet d'écrire le document XML.

o
Object

Object à sérialiser.

namespaces
XmlSerializerNamespaces

XmlSerializerNamespaces qui contient les espaces de noms du document XML généré.

Exceptions

Une erreur s'est produite lors de la sérialisation. L'exception d'origine est disponible via l'utilisation de la propriété InnerException.

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.

C#
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();
    }
}
XML
<?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 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és.

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

Notes

Ne XmlSerializer peut pas sérialiser les éléments suivants : tableaux de ArrayList et tableaux de List<T>.

Voir aussi

S’applique à

.NET 9 et autres versions
Produit Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1
UWP 10.0

Serialize(Object, XmlSerializationWriter)

Source:
XmlSerializer.cs
Source:
XmlSerializer.cs
Source:
XmlSerializer.cs

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

C#
protected virtual void Serialize (object? o, System.Xml.Serialization.XmlSerializationWriter writer);
C#
protected virtual void Serialize (object o, System.Xml.Serialization.XmlSerializationWriter writer);

Paramètres

o
Object

Object à sérialiser.

writer
XmlSerializationWriter

XmlSerializationWriter qui permet d'écrire le document XML.

Exceptions

Toutes les tentatives possibles sont effectuées pour accéder à la méthode si celle-ci n'est pas substituée dans une classe descendante.

S’applique à

.NET 9 et autres versions
Produit Versions
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

Serialize(TextWriter, Object)

Source:
XmlSerializer.cs
Source:
XmlSerializer.cs
Source:
XmlSerializer.cs

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

C#
public void Serialize (System.IO.TextWriter textWriter, object o);
C#
public void Serialize (System.IO.TextWriter textWriter, object? o);

Paramètres

textWriter
TextWriter

TextWriter qui permet d'écrire le document XML.

o
Object

Object à sérialiser.

Exemples

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

C#
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();
    }
}
XML
<?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. Il ne convertit pas de méthodes, d’indexeurs, de champs privés ou de 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 qui dérivent de TextWriter incluent :

Notes

Ne XmlSerializer peut pas sérialiser les éléments suivants : tableaux de ArrayList et tableaux de List<T>.

Voir aussi

S’applique à

.NET 9 et autres versions
Produit Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1
UWP 10.0

Serialize(Stream, Object)

Source:
XmlSerializer.cs
Source:
XmlSerializer.cs
Source:
XmlSerializer.cs

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

C#
public void Serialize (System.IO.Stream stream, object o);
C#
public void Serialize (System.IO.Stream stream, object? o);

Paramètres

stream
Stream

Stream qui permet d'é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 via l'utilisation de la propriété InnerException.

Exemples

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

C#
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();
    }
}
XML
<?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. Il ne convertit pas de méthodes, d’indexeurs, de champs privés ou de 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 qui dérivent de Stream incluent :

Notes

Ne XmlSerializer peut pas sérialiser les éléments suivants : tableaux de ArrayList et tableaux de List<T>.

Voir aussi

S’applique à

.NET 9 et autres versions
Produit Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1
UWP 10.0

Serialize(Stream, Object, XmlSerializerNamespaces)

Source:
XmlSerializer.cs
Source:
XmlSerializer.cs
Source:
XmlSerializer.cs

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

C#
public void Serialize (System.IO.Stream stream, object o, System.Xml.Serialization.XmlSerializerNamespaces namespaces);
C#
public void Serialize (System.IO.Stream stream, object? o, System.Xml.Serialization.XmlSerializerNamespaces? namespaces);

Paramètres

stream
Stream

Stream qui permet d'é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 via l'utilisation de la propriété InnerException.

Exemples

L’exemple suivant sérialise un objet avec un Stream objet. L’exemple crée également un XmlSerializerNamespaces 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.

C#
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);
    }
}

Remarques

Lorsque la Serialize méthode est appelée, les champs publics et les propriétés en 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és.

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

Notes

Ne XmlSerializer peut pas sérialiser les éléments suivants : tableaux de ArrayList et tableaux de List<T>.

Voir aussi

S’applique à

.NET 9 et autres versions
Produit Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1
UWP 10.0