XmlSerializer.Serialize Metodo

Definizione

Serializza un oggetto in un documento XML.

Overload

Serialize(XmlWriter, Object)

Serializza l'Object specificato e scrive il documento XML in un file utilizzando il XmlWriter specificato.

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

Serializza l'oggetto Object specificato e scrive il documento XML in un file mediante l'oggetto XmlWriter, gli spazi dei nomi XML e la codifica specificati.

Serialize(XmlWriter, Object, XmlSerializerNamespaces, String)

Serializza l'oggetto specificato e scrive il documento XML in un file mediante l'oggetto XmlWriter specificato, facendo riferimento agli spazi dei nomi specificati.

Serialize(XmlWriter, Object, XmlSerializerNamespaces)

Serializza l'oggetto Object specificato e scrive il documento XML in un file mediante l'oggetto XmlWriter specificato, facendo riferimento agli spazi dei nomi specificati.

Serialize(TextWriter, Object, XmlSerializerNamespaces)

Serializza l'oggetto Object specificato e scrive il documento XML in un file mediante l'oggetto TextWriter specificato, facendo riferimento agli spazi dei nomi specificati.

Serialize(Object, XmlSerializationWriter)

Serializza l'Object specificato e scrive il documento XML in un file utilizzando il XmlSerializationWriter specificato.

Serialize(TextWriter, Object)

Serializza l'Object specificato e scrive il documento XML in un file utilizzando il TextWriter specificato.

Serialize(Stream, Object)

Serializza l'Object specificato e scrive il documento XML in un file utilizzando il Stream specificato.

Serialize(Stream, Object, XmlSerializerNamespaces)

Serializza l'oggetto Object specificato e scrive il documento XML in un file mediante l'oggetto Stream specificato, che fa riferimento agli spazi dei nomi specificati.

Serialize(XmlWriter, Object)

Origine:
XmlSerializer.cs
Origine:
XmlSerializer.cs
Origine:
XmlSerializer.cs

Serializza l'Object specificato e scrive il documento XML in un file utilizzando il XmlWriter specificato.

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

Parametri

xmlWriter
XmlWriter

Il XmlWriter utilizzato per scrivere il documento XML.

o
Object

Object da serializzare.

Eccezioni

Si è verificato un errore durante la serializzazione. L'eccezione originale è disponibile tramite la proprietà InnerException.

Esempio

Nell'esempio seguente viene serializzato un oggetto usando un XmlWriteroggetto .

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 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>

Commenti

Il Serialize metodo converte i campi pubblici e le proprietà di lettura/scrittura di un oggetto in XML. Non converte metodi, indicizzatori, campi privati o proprietà di sola lettura.

xmlWriter Nel parametro specificare un oggetto che deriva dalla classe astrattaXmlWriter. Deriva XmlTextWriter dall'oggetto XmlWriter.

Nota

Impossibile XmlSerializer serializzare le seguenti matrici di ArrayList e matrici di List<T>.

Vedi anche

Si applica a

.NET 9 e altre versioni
Prodotto Versioni
.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)

Origine:
XmlSerializer.cs
Origine:
XmlSerializer.cs
Origine:
XmlSerializer.cs

Serializza l'oggetto Object specificato e scrive il documento XML in un file mediante l'oggetto XmlWriter, gli spazi dei nomi XML e la codifica specificati.

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

Parametri

xmlWriter
XmlWriter

Il XmlWriter utilizzato per scrivere il documento XML.

o
Object

Oggetto da serializzare.

namespaces
XmlSerializerNamespaces

Istanza di XmlSerializerNamespaces contenente gli spazi dei nomi e i prefissi da utilizzare.

encodingStyle
String

Codifica utilizzata nel documento.

id
String

Per i messaggi con codifica SOAP, base utilizzata per generare attributi di ID.

Commenti

Il parametro ID fornisce la stringa di base usata per creare ID SOAP. Per impostazione predefinita, queste sono "id1", "id2" e così via. Tuttavia, se il parametro è impostato su "myBase" i valori generati sono "myBaseid1", "myBaseid2" e così via. Questa funzionalità viene usata per creare valori ID univoci nell'intero messaggio SOAP.

Si applica a

.NET 9 e altre versioni
Prodotto Versioni
.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)

Origine:
XmlSerializer.cs
Origine:
XmlSerializer.cs
Origine:
XmlSerializer.cs

Serializza l'oggetto specificato e scrive il documento XML in un file mediante l'oggetto XmlWriter specificato, facendo riferimento agli spazi dei nomi specificati.

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

Parametri

xmlWriter
XmlWriter

Il XmlWriter utilizzato per scrivere il documento XML.

o
Object

Oggetto da serializzare.

namespaces
XmlSerializerNamespaces

L'XmlSerializerNamespaces cui fa riferimento l'oggetto.

encodingStyle
String

Stile di codifica dell'XML serializzato.

Eccezioni

Si è verificato un errore durante la serializzazione. L'eccezione originale è disponibile tramite la proprietà InnerException.

Commenti

Quando viene richiamato il Serialize metodo, i campi pubblici e le proprietà di lettura/scrittura di un oggetto vengono convertiti in XML. I metodi, gli indicizzatori, i campi privati e le proprietà di sola lettura non vengono serializzati.

Usare il xmlWriter parametro per specificare un oggetto che deriva dalla classe astratta XmlWriter , progettata per scrivere documenti XML. Deriva XmlTextWriter dall'oggetto XmlWriter.

Impostare il encodingStyle parametro su "http://schemas.xmlsoap.org/soap/encoding/" per la codifica SOAP versione 1.1; in caso contrario, impostarlo su "http://www.w3.org/2001/12/soap-encoding" per la codifica SOAP versione 1.2.

Nota

Impossibile XmlSerializer serializzare le seguenti matrici di ArrayList e matrici di List<T>.

Vedi anche

Si applica a

.NET 9 e altre versioni
Prodotto Versioni
.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)

Origine:
XmlSerializer.cs
Origine:
XmlSerializer.cs
Origine:
XmlSerializer.cs

Serializza l'oggetto Object specificato e scrive il documento XML in un file mediante l'oggetto XmlWriter specificato, facendo riferimento agli spazi dei nomi specificati.

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

Parametri

xmlWriter
XmlWriter

Il XmlWriter utilizzato per scrivere il documento XML.

o
Object

Object da serializzare.

namespaces
XmlSerializerNamespaces

L'XmlSerializerNamespaces cui fa riferimento l'oggetto.

Eccezioni

Si è verificato un errore durante la serializzazione. L'eccezione originale è disponibile tramite la proprietà InnerException.

Esempio

Nell'esempio seguente viene serializzato un oggetto con un XmlWriteroggetto . L'esempio crea anche un oggetto XmlSerializerNamespaces e aggiunge due spazi dei nomi all'oggetto. Diverse istanze della XmlElementAttribute classe vengono applicate ai membri della classe per specificare lo spazio dei nomi per ogni elemento.

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 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>

Commenti

Quando viene richiamato il Serialize metodo, i campi pubblici e le proprietà di lettura/scrittura di un oggetto vengono convertiti in XML. I metodi, gli indicizzatori, i campi privati e le proprietà di sola lettura non vengono serializzati.

Usare il xmlWriter parametro per specificare un oggetto che deriva dalla classe astratta XmlWriter , progettata per scrivere documenti XML. Deriva XmlTextWriter dall'oggetto XmlWriter.

Nota

Impossibile XmlSerializer serializzare le seguenti matrici di ArrayList e matrici di List<T>.

Vedi anche

Si applica a

.NET 9 e altre versioni
Prodotto Versioni
.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)

Origine:
XmlSerializer.cs
Origine:
XmlSerializer.cs
Origine:
XmlSerializer.cs

Serializza l'oggetto Object specificato e scrive il documento XML in un file mediante l'oggetto TextWriter specificato, facendo riferimento agli spazi dei nomi specificati.

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

Parametri

textWriter
TextWriter

Il TextWriter utilizzato per scrivere il documento XML.

o
Object

Object da serializzare.

namespaces
XmlSerializerNamespaces

XmlSerializerNamespaces contenente gli spazi dei nomi del documento XML generato.

Eccezioni

Si è verificato un errore durante la serializzazione. L'eccezione originale è disponibile tramite la proprietà InnerException.

Esempio

Nell'esempio seguente viene serializzato un oggetto con un TextWriteroggetto . L'esempio crea anche un XmlSerializerNamespaces oggetto e aggiunge due spazi dei nomi all'oggetto. La classe che definisce l'oggetto serializzato viene anche attribuita con XmlElementAttribute attributi per specificare lo spazio dei nomi per ogni elemento.

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 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>

Commenti

Quando il Serialize metodo viene richiamato i campi pubblici e le proprietà di lettura/scrittura di un oggetto vengono convertiti in XML. I metodi, gli indicizzatori, i campi privati e le proprietà di sola lettura non vengono serializzati.

Usare il textWriter parametro per specificare un oggetto che deriva dalla classe astratta TextWriter . Le classi derivate dalla TextWriter classe includono:

Nota

Impossibile XmlSerializer serializzare le matrici di e di ArrayListList<T>.

Vedi anche

Si applica a

.NET 9 e altre versioni
Prodotto Versioni
.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)

Origine:
XmlSerializer.cs
Origine:
XmlSerializer.cs
Origine:
XmlSerializer.cs

Serializza l'Object specificato e scrive il documento XML in un file utilizzando il XmlSerializationWriter specificato.

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

Parametri

o
Object

Object da serializzare.

writer
XmlSerializationWriter

Il XmlSerializationWriter utilizzato per scrivere il documento XML.

Eccezioni

Qualsiasi tentativo di accedere al metodo viene effettuato quando questo non è sottoposto a override in una classe derivata.

Si applica a

.NET 9 e altre versioni
Prodotto Versioni
.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)

Origine:
XmlSerializer.cs
Origine:
XmlSerializer.cs
Origine:
XmlSerializer.cs

Serializza l'Object specificato e scrive il documento XML in un file utilizzando il TextWriter specificato.

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

Parametri

textWriter
TextWriter

Il TextWriter utilizzato per scrivere il documento XML.

o
Object

Object da serializzare.

Esempio

Nell'esempio seguente viene serializzato un oggetto utilizzando un oggetto 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();
    }
}
<?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>

Commenti

Il Serialize metodo converte i campi pubblici e le proprietà di lettura/scrittura di un oggetto in XML. Non converte metodi, indicizzatori, campi privati o proprietà di sola lettura.

textWriter Nel parametro specificare un oggetto che deriva dalla classe astrattaTextWriter. Le classi che derivano da TextWriter includono:

Nota

Impossibile XmlSerializer serializzare le matrici di e di ArrayListList<T>.

Vedi anche

Si applica a

.NET 9 e altre versioni
Prodotto Versioni
.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)

Origine:
XmlSerializer.cs
Origine:
XmlSerializer.cs
Origine:
XmlSerializer.cs

Serializza l'Object specificato e scrive il documento XML in un file utilizzando il Stream specificato.

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

Parametri

stream
Stream

Il Stream utilizzato per scrivere il documento XML.

o
Object

Object da serializzare.

Eccezioni

Si è verificato un errore durante la serializzazione. L'eccezione originale è disponibile tramite la proprietà InnerException.

Esempio

Nell'esempio seguente viene serializzato un oggetto utilizzando un Stream oggetto .

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 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>

Commenti

Il Serialize metodo converte i campi pubblici e le proprietà di lettura/scrittura di un oggetto in XML. Non converte metodi, indicizzatori, campi privati o proprietà di sola lettura.

stream Nel parametro specificare un oggetto che deriva dalla classe astrattaStream. Le classi che derivano da Stream includono:

Nota

Impossibile XmlSerializer serializzare le matrici di e di ArrayListList<T>.

Vedi anche

Si applica a

.NET 9 e altre versioni
Prodotto Versioni
.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)

Origine:
XmlSerializer.cs
Origine:
XmlSerializer.cs
Origine:
XmlSerializer.cs

Serializza l'oggetto Object specificato e scrive il documento XML in un file mediante l'oggetto Stream specificato, che fa riferimento agli spazi dei nomi specificati.

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

Parametri

stream
Stream

Il Stream utilizzato per scrivere il documento XML.

o
Object

Object da serializzare.

namespaces
XmlSerializerNamespaces

L'XmlSerializerNamespaces cui fa riferimento l'oggetto.

Eccezioni

Si è verificato un errore durante la serializzazione. L'eccezione originale è disponibile tramite la proprietà InnerException.

Esempio

Nell'esempio seguente viene serializzato un oggetto con un Stream oggetto . Nell'esempio viene inoltre creato un oggetto XmlSerializerNamespaces e vengono aggiunti due spazi dei nomi all'oggetto . Anche la classe che definisce l'oggetto serializzato viene attribuita con XmlElementAttribute attributi per specificare lo spazio dei nomi per ogni elemento.

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

Commenti

Quando il Serialize metodo viene richiamato, i campi pubblici e le proprietà di lettura/scrittura di un oggetto vengono convertiti in XML. Metodi, indicizzatori, campi privati e proprietà di sola lettura non vengono serializzati.

Usare il stream parametro per specificare un oggetto che deriva dalla classe astratta Stream , progettata per scrivere nei flussi. Le classi che derivano dalla Stream classe includono:

Nota

Impossibile XmlSerializer serializzare le matrici di e di ArrayListList<T>.

Vedi anche

Si applica a

.NET 9 e altre versioni
Prodotto Versioni
.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