XmlSerializer.Serialize Metoda

Definice

Serializuje objekt do dokumentu XML.

Přetížení

Serialize(XmlWriter, Object)

Serializuje zadaný Object a zapíše dokument XML do souboru pomocí zadaného XmlWriter.

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

Serializuje zadaný Object a zapíše dokument XML do souboru pomocí zadané XmlWriter, XML obory názvů, a kódování.

Serialize(XmlWriter, Object, XmlSerializerNamespaces, String)

Serializuje zadaný objekt a zapíše dokument XML do souboru pomocí zadané XmlWriter a odkazuje na zadané obory názvů a styl kódování.

Serialize(XmlWriter, Object, XmlSerializerNamespaces)

Serializuje zadaný Object a zapíše dokument XML do souboru pomocí zadané XmlWriter a odkazuje na zadané obory názvů.

Serialize(TextWriter, Object, XmlSerializerNamespaces)

Serializuje zadaný Object a zapíše dokument XML do souboru pomocí zadané TextWriter a odkazuje na zadané obory názvů.

Serialize(Object, XmlSerializationWriter)

Serializuje zadaný Object a zapíše dokument XML do souboru pomocí zadaného XmlSerializationWriter.

Serialize(TextWriter, Object)

Serializuje zadaný Object a zapíše dokument XML do souboru pomocí zadaného TextWriter.

Serialize(Stream, Object)

Serializuje zadaný Object a zapíše dokument XML do souboru pomocí zadaného Stream.

Serialize(Stream, Object, XmlSerializerNamespaces)

Serializuje zadaný Object a zapíše dokument XML do souboru pomocí zadané Stream , který odkazuje na zadané obory názvů.

Serialize(XmlWriter, Object)

Zdroj:
XmlSerializer.cs
Zdroj:
XmlSerializer.cs
Zdroj:
XmlSerializer.cs

Serializuje zadaný Object a zapíše dokument XML do souboru pomocí zadaného XmlWriter.

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

Parametry

xmlWriter
XmlWriter

Slouží XmlWriter k zápisu dokumentu XML.

o
Object

Serializovat Object .

Výjimky

Během serializace došlo k chybě. Původní výjimka je k dispozici pomocí InnerException vlastnosti .

Příklady

Následující příklad serializuje objekt pomocí 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>

Poznámky

Metoda Serialize převede veřejná pole a vlastnosti objektu pro čtení a zápis do xml. Nepřevádí metody, indexery, privátní pole ani vlastnosti jen pro čtení.

V parametru xmlWriter zadejte objekt, který je odvozen z abstraktní XmlWriter třídy. Odvozuje XmlTextWriter se z .XmlWriter

Poznámka

Nelze XmlSerializer serializovat následující: pole ArrayList a pole .List<T>

Viz také

Platí pro

.NET 9 a další verze
Produkt Verze
.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)

Zdroj:
XmlSerializer.cs
Zdroj:
XmlSerializer.cs
Zdroj:
XmlSerializer.cs

Serializuje zadaný Object a zapíše dokument XML do souboru pomocí zadané XmlWriter, XML obory názvů, a kódování.

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

Parametry

xmlWriter
XmlWriter

Slouží XmlWriter k zápisu dokumentu XML.

o
Object

Objekt serializovat.

namespaces
XmlSerializerNamespaces

Instance , XmlSerializerNamespaces která obsahuje obory názvů a předpony k použití.

encodingStyle
String

Kódování použité v dokumentu.

id
String

Pro zprávy kódované protokolem SOAP základ použitý ke generování atributů ID.

Poznámky

Parametr id poskytuje základní řetězec použitý k vytvoření ID PROTOKOLU SOAP. Ve výchozím nastavení jsou to id1, id2 atd. Pokud je ale parametr nastavený na myBase, vygenerované hodnoty jsou myBaseid1, myBaseid2 atd. Tato funkce slouží k vytvoření jedinečných hodnot ID v celé zprávě SOAP.

Platí pro

.NET 9 a další verze
Produkt Verze
.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)

Zdroj:
XmlSerializer.cs
Zdroj:
XmlSerializer.cs
Zdroj:
XmlSerializer.cs

Serializuje zadaný objekt a zapíše dokument XML do souboru pomocí zadané XmlWriter a odkazuje na zadané obory názvů a styl kódování.

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

Parametry

xmlWriter
XmlWriter

Slouží XmlWriter k zápisu dokumentu XML.

o
Object

Objekt serializovat.

namespaces
XmlSerializerNamespaces

Objekt XmlSerializerNamespaces odkazovaný objektem .

encodingStyle
String

Styl kódování serializované XML.

Výjimky

Během serializace došlo k chybě. Původní výjimka je k dispozici pomocí InnerException vlastnosti .

Poznámky

Při vyvolání Serialize metody se veřejná pole a vlastnosti pro čtení a zápis objektu převedou na XML. Metody, indexery, privátní pole a vlastnosti jen pro čtení nejsou serializovány.

xmlWriter Použijte parametr k určení objektu, který je odvozen z abstraktní XmlWriter třídy, která je určena k zápisu dokumentů XML. Odvozuje XmlTextWriter se z .XmlWriter

encodingStyle Nastavte parametr na "http://schemas.xmlsoap.org/soap/encoding/" pro kódování SOAP verze 1.1; jinak ji nastavte na "http://www.w3.org/2001/12/soap-encoding" pro kódování SOAP verze 1.2.

Poznámka

Nelze XmlSerializer serializovat následující: pole ArrayList a pole .List<T>

Viz také

Platí pro

.NET 9 a další verze
Produkt Verze
.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)

Zdroj:
XmlSerializer.cs
Zdroj:
XmlSerializer.cs
Zdroj:
XmlSerializer.cs

Serializuje zadaný Object a zapíše dokument XML do souboru pomocí zadané XmlWriter a odkazuje na zadané obory názvů.

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

Parametry

xmlWriter
XmlWriter

Slouží XmlWriter k zápisu dokumentu XML.

o
Object

Serializovat Object .

namespaces
XmlSerializerNamespaces

Objekt XmlSerializerNamespaces odkazovaný objektem .

Výjimky

Během serializace došlo k chybě. Původní výjimka je k dispozici pomocí InnerException vlastnosti .

Příklady

Následující příklad serializuje objekt pomocí XmlWriter. Příklad také vytvoří XmlSerializerNamespaces a přidá do objektu dva obory názvů. Několik instancí XmlElementAttribute třídy je použito na členy třídy k určení oboru názvů pro každý prvek.

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>

Poznámky

Při vyvolání Serialize metody se veřejná pole a vlastnosti pro čtení a zápis objektu převedou na XML. Metody, indexery, privátní pole a vlastnosti jen pro čtení nejsou serializovány.

xmlWriter Použijte parametr k určení objektu, který je odvozen z abstraktní XmlWriter třídy, která je určena k zápisu dokumentů XML. Odvozuje XmlTextWriter se z .XmlWriter

Poznámka

Nelze XmlSerializer serializovat následující: pole ArrayList a pole .List<T>

Viz také

Platí pro

.NET 9 a další verze
Produkt Verze
.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)

Zdroj:
XmlSerializer.cs
Zdroj:
XmlSerializer.cs
Zdroj:
XmlSerializer.cs

Serializuje zadaný Object a zapíše dokument XML do souboru pomocí zadané TextWriter a odkazuje na zadané obory názvů.

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

Parametry

textWriter
TextWriter

Slouží TextWriter k zápisu dokumentu XML.

o
Object

Serializovat Object .

namespaces
XmlSerializerNamespaces

Obsahuje XmlSerializerNamespaces obory názvů pro vygenerovaný dokument XML.

Výjimky

Během serializace došlo k chybě. Původní výjimka je k dispozici pomocí InnerException vlastnosti .

Příklady

Následující příklad serializuje objekt pomocí TextWriter. Příklad také vytvoří XmlSerializerNamespaces objekt a přidá do objektu dva obory názvů. Třída, která definuje serializovaný objekt, je také přiřazena XmlElementAttribute atributy pro určení oboru názvů pro každý prvek.

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>

Poznámky

Při vyvolání Serialize metody se veřejná pole a vlastnosti pro čtení a zápis objektu převedou na XML. Metody, indexery, privátní pole a vlastnosti jen pro čtení nejsou serializovány.

textWriter Použijte parametr k určení objektu, který je odvozen z abstraktní TextWriter třídy. Mezi třídy odvozené z TextWriter třídy patří:

Poznámka

Nelze XmlSerializer serializovat následující: pole ArrayList a pole .List<T>

Viz také

Platí pro

.NET 9 a další verze
Produkt Verze
.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)

Zdroj:
XmlSerializer.cs
Zdroj:
XmlSerializer.cs
Zdroj:
XmlSerializer.cs

Serializuje zadaný Object a zapíše dokument XML do souboru pomocí zadané XmlSerializationWriter.

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

Parametry

o
Object

Serializovat Object .

writer
XmlSerializationWriter

Slouží XmlSerializationWriter k zápisu dokumentu XML.

Výjimky

Jakýkoli pokus o přístup k metodě, pokud metoda není přepsána v následné třídě.

Platí pro

.NET 9 a další verze
Produkt Verze
.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)

Zdroj:
XmlSerializer.cs
Zdroj:
XmlSerializer.cs
Zdroj:
XmlSerializer.cs

Serializuje zadaný Object a zapíše dokument XML do souboru pomocí zadané TextWriter.

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

Parametry

textWriter
TextWriter

Slouží TextWriter k zápisu dokumentu XML.

o
Object

Serializovat Object .

Příklady

Následující příklad serializuje objekt pomocí 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>

Poznámky

Metoda Serialize převede veřejná pole a vlastnosti pro čtení/zápis objektu na XML. Nepřevádí metody, indexery, privátní pole ani vlastnosti jen pro čtení.

V parametru textWriter zadejte objekt, který je odvozen z abstraktní TextWriter třídy. Mezi třídy, které jsou odvozeny, TextWriter patří:

Poznámka

Nelze XmlSerializer serializovat následující: pole ArrayList a pole .List<T>

Viz také

Platí pro

.NET 9 a další verze
Produkt Verze
.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)

Zdroj:
XmlSerializer.cs
Zdroj:
XmlSerializer.cs
Zdroj:
XmlSerializer.cs

Serializuje zadaný Object a zapíše dokument XML do souboru pomocí zadané Stream.

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

Parametry

stream
Stream

Slouží Stream k zápisu dokumentu XML.

o
Object

Serializovat Object .

Výjimky

Během serializace došlo k chybě. Původní výjimka je k dispozici pomocí InnerException vlastnosti .

Příklady

Následující příklad serializuje objekt pomocí objektu Stream .

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>

Poznámky

Metoda Serialize převede veřejná pole a vlastnosti pro čtení/zápis objektu na XML. Nepřevádí metody, indexery, privátní pole ani vlastnosti jen pro čtení.

V parametru stream zadejte objekt, který je odvozen z abstraktní Stream třídy. Mezi třídy, které jsou odvozeny, Stream patří:

Poznámka

Nelze XmlSerializer serializovat následující: pole ArrayList a pole .List<T>

Viz také

Platí pro

.NET 9 a další verze
Produkt Verze
.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)

Zdroj:
XmlSerializer.cs
Zdroj:
XmlSerializer.cs
Zdroj:
XmlSerializer.cs

Serializuje zadaný Object a zapíše dokument XML do souboru pomocí zadaného Stream , který odkazuje na zadané obory názvů.

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

Parametry

stream
Stream

Slouží Stream k zápisu dokumentu XML.

o
Object

Serializovat Object .

namespaces
XmlSerializerNamespaces

Objekt XmlSerializerNamespaces odkazovaný objektem.

Výjimky

Během serializace došlo k chybě. Původní výjimka je k dispozici pomocí InnerException vlastnosti .

Příklady

Následující příklad serializuje objekt s objektem Stream . Příklad také vytvoří XmlSerializerNamespaces a přidá do objektu dva obory názvů. Třída, která definuje serializovaný objekt, je také přiřazena atributy XmlElementAttribute pro určení oboru názvů pro každý prvek.

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

Poznámky

Při vyvolání Serialize metody jsou veřejná pole a vlastnosti pro čtení/zápis objektu převedeny na XML. Metody, indexery, privátní pole a vlastnosti jen pro čtení nejsou serializovány.

Pomocí parametru stream určete objekt, který je odvozen z abstraktní Stream třídy, která je určena k zápisu do datových proudů. Mezi třídy odvozené z Stream třídy patří:

Poznámka

Nelze XmlSerializer serializovat následující: pole ArrayList a pole .List<T>

Viz také

Platí pro

.NET 9 a další verze
Produkt Verze
.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