XmlSerializer.Serialize Methode

Definition

Serialisiert ein Objekt in ein XML-Dokument.

Überlädt

Name Beschreibung
Serialize(XmlWriter, Object)

Serialisiert das angegebene Object Dokument und schreibt das XML-Dokument mithilfe des angegebenen XmlWriter.

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

Serialisiert das angegebene Object Dokument und schreibt das XML-Dokument mithilfe der angegebenen XmlWriterXML-Namespaces und der Codierung in eine Datei.

Serialize(XmlWriter, Object, XmlSerializerNamespaces, String)

Serialisiert das angegebene Objekt und schreibt das XML-Dokument mithilfe der angegebenen XmlWriter Namespaces und des Codierungsstils in eine Datei.

Serialize(XmlWriter, Object, XmlSerializerNamespaces)

Serialisiert das angegebene Dokument und schreibt das XML-Dokument mithilfe der angegebenen ObjectXmlWriter Namespaces in eine Datei.

Serialize(TextWriter, Object, XmlSerializerNamespaces)

Serialisiert das angegebene Dokument und schreibt das XML-Dokument mithilfe der angegebenen ObjectTextWriter Namespaces in eine Datei.

Serialize(Object, XmlSerializationWriter)

Serialisiert das angegebene Object Dokument und schreibt das XML-Dokument mithilfe des angegebenen XmlSerializationWriter.

Serialize(TextWriter, Object)

Serialisiert das angegebene Object Dokument und schreibt das XML-Dokument mithilfe des angegebenen TextWriter.

Serialize(Stream, Object)

Serialisiert das angegebene Object Dokument und schreibt das XML-Dokument mithilfe des angegebenen Stream.

Serialize(Stream, Object, XmlSerializerNamespaces)

Serialisiert das angegebene Object Dokument und schreibt das XML-Dokument mithilfe der angegebenen Stream Eigenschaft, die auf die angegebenen Namespaces verweist.

Serialize(XmlWriter, Object)

Quelle:
XmlSerializer.cs
Quelle:
XmlSerializer.cs
Quelle:
XmlSerializer.cs
Quelle:
XmlSerializer.cs
Quelle:
XmlSerializer.cs

Serialisiert das angegebene Object Dokument und schreibt das XML-Dokument mithilfe des angegebenen XmlWriter.

public:
 void Serialize(System::Xml::XmlWriter ^ xmlWriter, System::Object ^ o);
public void Serialize(System.Xml.XmlWriter xmlWriter, object o);
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("XML serializer relies on dynamic code generation which is not available with Ahead of Time compilation")]
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Members from serialized types may be trimmed if not referenced directly")]
public void Serialize(System.Xml.XmlWriter xmlWriter, object? o);
public void Serialize(System.Xml.XmlWriter xmlWriter, object? o);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Members from serialized types may be trimmed if not referenced directly")]
public void Serialize(System.Xml.XmlWriter xmlWriter, object? o);
member this.Serialize : System.Xml.XmlWriter * obj -> unit
[<System.Diagnostics.CodeAnalysis.RequiresDynamicCode("XML serializer relies on dynamic code generation which is not available with Ahead of Time compilation")>]
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Members from serialized types may be trimmed if not referenced directly")>]
member this.Serialize : System.Xml.XmlWriter * obj -> unit
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Members from serialized types may be trimmed if not referenced directly")>]
member this.Serialize : System.Xml.XmlWriter * obj -> unit
Public Sub Serialize (xmlWriter As XmlWriter, o As Object)

Parameter

xmlWriter
XmlWriter

Wird XmlWriter zum Schreiben des XML-Dokuments verwendet.

o
Object

The Object to serialize.

Attribute

Ausnahmen

Fehler bei der Serialisierung. Die ursprüngliche Ausnahme ist mit der InnerException Eigenschaft verfügbar.

Beispiele

Im folgenden Beispiel wird ein Objekt mithilfe eines 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>

Hinweise

Die Serialize Methode konvertiert die öffentlichen Felder und Lese-/Schreibeigenschaften eines Objekts in XML. Methoden, Indexer, private Felder oder schreibgeschützte Eigenschaften werden nicht konvertiert.

Geben Sie im xmlWriter Parameter ein Objekt an, das von der abstrakten XmlWriter Klasse abgeleitet wird. Die XmlTextWriter abgeleitet von der XmlWriter.

Note

Die XmlSerializer folgenden Arrays können nicht serialisiert werden: Arrays von ArrayList und Arrays von List<T>.

Weitere Informationen

Gilt für:

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

Quelle:
XmlSerializer.cs
Quelle:
XmlSerializer.cs
Quelle:
XmlSerializer.cs
Quelle:
XmlSerializer.cs
Quelle:
XmlSerializer.cs

Serialisiert das angegebene Object Dokument und schreibt das XML-Dokument mithilfe der angegebenen XmlWriterXML-Namespaces und der Codierung in eine Datei.

public:
 void Serialize(System::Xml::XmlWriter ^ xmlWriter, System::Object ^ o, System::Xml::Serialization::XmlSerializerNamespaces ^ namespaces, System::String ^ encodingStyle, System::String ^ id);
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("XML serializer relies on dynamic code generation which is not available with Ahead of Time compilation")]
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Members from serialized types may be trimmed if not referenced directly")]
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);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Members from serialized types may be trimmed if not referenced directly")]
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);
[<System.Diagnostics.CodeAnalysis.RequiresDynamicCode("XML serializer relies on dynamic code generation which is not available with Ahead of Time compilation")>]
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Members from serialized types may be trimmed if not referenced directly")>]
member this.Serialize : System.Xml.XmlWriter * obj * System.Xml.Serialization.XmlSerializerNamespaces * string * string -> unit
member this.Serialize : System.Xml.XmlWriter * obj * System.Xml.Serialization.XmlSerializerNamespaces * string * string -> unit
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Members from serialized types may be trimmed if not referenced directly")>]
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)

Parameter

xmlWriter
XmlWriter

Wird XmlWriter zum Schreiben des XML-Dokuments verwendet.

o
Object

Das zu serialisierende Objekt.

namespaces
XmlSerializerNamespaces

Eine Instanz der XmlSerializerNamespaces zu verwendenden Namespaces und Präfixe.

encodingStyle
String

Die im Dokument verwendete Codierung.

id
String

Bei SOAP-codierten Nachrichten wird die Basis zum Generieren von ID-Attributen verwendet.

Attribute

Hinweise

Der ID-Parameter stellt die Basiszeichenfolge bereit, die zum Erstellen von SOAP-IDs verwendet wird. Standardmäßig sind dies "id1", "id2" usw. Wenn der Parameter jedoch auf "myBase" festgelegt ist, sind die generierten Werte "myBaseid1", "myBaseid2" usw. Diese Funktion wird verwendet, um eindeutige ID-Werte in der gesamten SOAP-Nachricht zu erstellen.

Gilt für:

Serialize(XmlWriter, Object, XmlSerializerNamespaces, String)

Quelle:
XmlSerializer.cs
Quelle:
XmlSerializer.cs
Quelle:
XmlSerializer.cs
Quelle:
XmlSerializer.cs
Quelle:
XmlSerializer.cs

Serialisiert das angegebene Objekt und schreibt das XML-Dokument mithilfe der angegebenen XmlWriter Namespaces und des Codierungsstils in eine Datei.

public:
 void Serialize(System::Xml::XmlWriter ^ xmlWriter, System::Object ^ o, System::Xml::Serialization::XmlSerializerNamespaces ^ namespaces, System::String ^ encodingStyle);
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("XML serializer relies on dynamic code generation which is not available with Ahead of Time compilation")]
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Members from serialized types may be trimmed if not referenced directly")]
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);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Members from serialized types may be trimmed if not referenced directly")]
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);
[<System.Diagnostics.CodeAnalysis.RequiresDynamicCode("XML serializer relies on dynamic code generation which is not available with Ahead of Time compilation")>]
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Members from serialized types may be trimmed if not referenced directly")>]
member this.Serialize : System.Xml.XmlWriter * obj * System.Xml.Serialization.XmlSerializerNamespaces * string -> unit
member this.Serialize : System.Xml.XmlWriter * obj * System.Xml.Serialization.XmlSerializerNamespaces * string -> unit
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Members from serialized types may be trimmed if not referenced directly")>]
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)

Parameter

xmlWriter
XmlWriter

Wird XmlWriter zum Schreiben des XML-Dokuments verwendet.

o
Object

Das zu serialisierende Objekt.

namespaces
XmlSerializerNamespaces

Der XmlSerializerNamespaces Verweis auf das Objekt.

encodingStyle
String

The encoding style of the serialized XML.

Attribute

Ausnahmen

Fehler bei der Serialisierung. Die ursprüngliche Ausnahme ist mit der InnerException Eigenschaft verfügbar.

Hinweise

Wenn die Serialize Methode aufgerufen wird, werden die öffentlichen Felder und Lese-/Schreibeigenschaften eines Objekts in XML konvertiert. Methoden, Indexer, private Felder und schreibgeschützte Eigenschaften werden nicht serialisiert.

Verwenden Sie den xmlWriter Parameter, um ein Objekt anzugeben, das von der abstrakten XmlWriter Klasse abgeleitet ist, die zum Schreiben von XML-Dokumenten konzipiert ist. Die XmlTextWriter abgeleitet von der XmlWriter.

Legen Sie den encodingStyle Parameter auf "http://schemas.xmlsoap.org/soap/encoding/" für SOAP Version 1.1-Codierung; andernfalls legen Sie sie auf "http://www.w3.org/2001/12/soap-encoding" für SOAP Version 1.2-Codierung.

Note

Die XmlSerializer folgenden Arrays können nicht serialisiert werden: Arrays von ArrayList und Arrays von List<T>.

Weitere Informationen

Gilt für:

Serialize(XmlWriter, Object, XmlSerializerNamespaces)

Quelle:
XmlSerializer.cs
Quelle:
XmlSerializer.cs
Quelle:
XmlSerializer.cs
Quelle:
XmlSerializer.cs
Quelle:
XmlSerializer.cs

Serialisiert das angegebene Dokument und schreibt das XML-Dokument mithilfe der angegebenen ObjectXmlWriter Namespaces in eine Datei.

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);
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("XML serializer relies on dynamic code generation which is not available with Ahead of Time compilation")]
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Members from serialized types may be trimmed if not referenced directly")]
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);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Members from serialized types may be trimmed if not referenced directly")]
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
[<System.Diagnostics.CodeAnalysis.RequiresDynamicCode("XML serializer relies on dynamic code generation which is not available with Ahead of Time compilation")>]
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Members from serialized types may be trimmed if not referenced directly")>]
member this.Serialize : System.Xml.XmlWriter * obj * System.Xml.Serialization.XmlSerializerNamespaces -> unit
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Members from serialized types may be trimmed if not referenced directly")>]
member this.Serialize : System.Xml.XmlWriter * obj * System.Xml.Serialization.XmlSerializerNamespaces -> unit
Public Sub Serialize (xmlWriter As XmlWriter, o As Object, namespaces As XmlSerializerNamespaces)

Parameter

xmlWriter
XmlWriter

Wird XmlWriter zum Schreiben des XML-Dokuments verwendet.

o
Object

The Object to serialize.

namespaces
XmlSerializerNamespaces

Der XmlSerializerNamespaces Verweis auf das Objekt.

Attribute

Ausnahmen

Fehler bei der Serialisierung. Die ursprüngliche Ausnahme ist mit der InnerException Eigenschaft verfügbar.

Beispiele

Im folgenden Beispiel wird ein Objekt mit einem XmlWriter. Das Beispiel erstellt außerdem ein XmlSerializerNamespaces und fügt dem Objekt zwei Namespaces hinzu. Mehrere Instanzen der XmlElementAttribute Klasse werden auf die Klassenmmber angewendet, um den Namespace für jedes Element anzugeben.

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>

Hinweise

Wenn die Serialize Methode aufgerufen wird, werden die öffentlichen Felder und Lese-/Schreibeigenschaften eines Objekts in XML konvertiert. Methoden, Indexer, private Felder und schreibgeschützte Eigenschaften werden nicht serialisiert.

Verwenden Sie den xmlWriter Parameter, um ein Objekt anzugeben, das von der abstrakten XmlWriter Klasse abgeleitet ist, die zum Schreiben von XML-Dokumenten konzipiert ist. Die XmlTextWriter abgeleitet von der XmlWriter.

Note

Die XmlSerializer folgenden Arrays können nicht serialisiert werden: Arrays von ArrayList und Arrays von List<T>.

Weitere Informationen

Gilt für:

Serialize(TextWriter, Object, XmlSerializerNamespaces)

Quelle:
XmlSerializer.cs
Quelle:
XmlSerializer.cs
Quelle:
XmlSerializer.cs
Quelle:
XmlSerializer.cs
Quelle:
XmlSerializer.cs

Serialisiert das angegebene Dokument und schreibt das XML-Dokument mithilfe der angegebenen ObjectTextWriter Namespaces in eine Datei.

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);
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("XML serializer relies on dynamic code generation which is not available with Ahead of Time compilation")]
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Members from serialized types may be trimmed if not referenced directly")]
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);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Members from serialized types may be trimmed if not referenced directly")]
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
[<System.Diagnostics.CodeAnalysis.RequiresDynamicCode("XML serializer relies on dynamic code generation which is not available with Ahead of Time compilation")>]
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Members from serialized types may be trimmed if not referenced directly")>]
member this.Serialize : System.IO.TextWriter * obj * System.Xml.Serialization.XmlSerializerNamespaces -> unit
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Members from serialized types may be trimmed if not referenced directly")>]
member this.Serialize : System.IO.TextWriter * obj * System.Xml.Serialization.XmlSerializerNamespaces -> unit
Public Sub Serialize (textWriter As TextWriter, o As Object, namespaces As XmlSerializerNamespaces)

Parameter

textWriter
TextWriter

Wird TextWriter zum Schreiben des XML-Dokuments verwendet.

o
Object

The Object to serialize.

namespaces
XmlSerializerNamespaces

Die XmlSerializerNamespaces Namespaces für das generierte XML-Dokument.

Attribute

Ausnahmen

Fehler bei der Serialisierung. Die ursprüngliche Ausnahme ist mit der InnerException Eigenschaft verfügbar.

Beispiele

Im folgenden Beispiel wird ein Objekt mit einem TextWriter. Im Beispiel wird auch ein XmlSerializerNamespaces Objekt erstellt und dem Objekt zwei Namespaces hinzugefügt. Die Klasse, die das serialisierte Objekt definiert, wird auch attributen XmlElementAttribute zugeordnet, um den Namespace für jedes Element anzugeben.

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>

Hinweise

Wenn die Serialize Methode aufgerufen wird, werden die öffentlichen Felder und Lese-/Schreibeigenschaften eines Objekts in XML konvertiert. Methoden, Indexer, private Felder und schreibgeschützte Eigenschaften werden nicht serialisiert.

Verwenden Sie den textWriter Parameter, um ein Objekt anzugeben, das von der abstrakten TextWriter Klasse abgeleitet wird. Klassen, die von TextWriter der Klasse abgeleitet werden, umfassen:

Note

Die XmlSerializer folgenden Arrays können nicht serialisiert werden: Arrays von ArrayList und Arrays von List<T>.

Weitere Informationen

Gilt für:

Serialize(Object, XmlSerializationWriter)

Quelle:
XmlSerializer.cs
Quelle:
XmlSerializer.cs
Quelle:
XmlSerializer.cs
Quelle:
XmlSerializer.cs
Quelle:
XmlSerializer.cs

Serialisiert das angegebene Object Dokument und schreibt das XML-Dokument mithilfe des angegebenen XmlSerializationWriter.

protected:
 virtual void Serialize(System::Object ^ o, System::Xml::Serialization::XmlSerializationWriter ^ writer);
protected virtual void Serialize(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)

Parameter

o
Object

The Object to serialize.

writer
XmlSerializationWriter

Wird XmlSerializationWriter zum Schreiben des XML-Dokuments verwendet.

Ausnahmen

Es wird versucht, auf die Methode zuzugreifen, wenn die Methode in einer untergeordneten Klasse nicht überschrieben wird.

Gilt für:

Serialize(TextWriter, Object)

Quelle:
XmlSerializer.cs
Quelle:
XmlSerializer.cs
Quelle:
XmlSerializer.cs
Quelle:
XmlSerializer.cs
Quelle:
XmlSerializer.cs

Serialisiert das angegebene Object Dokument und schreibt das XML-Dokument mithilfe des angegebenen TextWriter.

public:
 void Serialize(System::IO::TextWriter ^ textWriter, System::Object ^ o);
public void Serialize(System.IO.TextWriter textWriter, object o);
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("XML serializer relies on dynamic code generation which is not available with Ahead of Time compilation")]
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Members from serialized types may be trimmed if not referenced directly")]
public void Serialize(System.IO.TextWriter textWriter, object? o);
public void Serialize(System.IO.TextWriter textWriter, object? o);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Members from serialized types may be trimmed if not referenced directly")]
public void Serialize(System.IO.TextWriter textWriter, object? o);
member this.Serialize : System.IO.TextWriter * obj -> unit
[<System.Diagnostics.CodeAnalysis.RequiresDynamicCode("XML serializer relies on dynamic code generation which is not available with Ahead of Time compilation")>]
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Members from serialized types may be trimmed if not referenced directly")>]
member this.Serialize : System.IO.TextWriter * obj -> unit
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Members from serialized types may be trimmed if not referenced directly")>]
member this.Serialize : System.IO.TextWriter * obj -> unit
Public Sub Serialize (textWriter As TextWriter, o As Object)

Parameter

textWriter
TextWriter

Wird TextWriter zum Schreiben des XML-Dokuments verwendet.

o
Object

The Object to serialize.

Attribute

Beispiele

Im folgenden Beispiel wird ein Objekt mithilfe eines 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>

Hinweise

Die Serialize Methode konvertiert die öffentlichen Felder und Lese-/Schreibeigenschaften eines Objekts in XML. Methoden, Indexer, private Felder oder schreibgeschützte Eigenschaften werden nicht konvertiert.

Geben Sie im textWriter Parameter ein Objekt an, das von der abstrakten TextWriter Klasse abgeleitet wird. Klassen, die von TextWriter einschließen:

Note

Die XmlSerializer folgenden Arrays können nicht serialisiert werden: Arrays von ArrayList und Arrays von List<T>.

Weitere Informationen

Gilt für:

Serialize(Stream, Object)

Quelle:
XmlSerializer.cs
Quelle:
XmlSerializer.cs
Quelle:
XmlSerializer.cs
Quelle:
XmlSerializer.cs
Quelle:
XmlSerializer.cs

Serialisiert das angegebene Object Dokument und schreibt das XML-Dokument mithilfe des angegebenen Stream.

public:
 void Serialize(System::IO::Stream ^ stream, System::Object ^ o);
public void Serialize(System.IO.Stream stream, object o);
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("XML serializer relies on dynamic code generation which is not available with Ahead of Time compilation")]
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Members from serialized types may be trimmed if not referenced directly")]
public void Serialize(System.IO.Stream stream, object? o);
public void Serialize(System.IO.Stream stream, object? o);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Members from serialized types may be trimmed if not referenced directly")]
public void Serialize(System.IO.Stream stream, object? o);
member this.Serialize : System.IO.Stream * obj -> unit
[<System.Diagnostics.CodeAnalysis.RequiresDynamicCode("XML serializer relies on dynamic code generation which is not available with Ahead of Time compilation")>]
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Members from serialized types may be trimmed if not referenced directly")>]
member this.Serialize : System.IO.Stream * obj -> unit
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Members from serialized types may be trimmed if not referenced directly")>]
member this.Serialize : System.IO.Stream * obj -> unit
Public Sub Serialize (stream As Stream, o As Object)

Parameter

stream
Stream

Wird Stream zum Schreiben des XML-Dokuments verwendet.

o
Object

The Object to serialize.

Attribute

Ausnahmen

Fehler bei der Serialisierung. Die ursprüngliche Ausnahme ist mit der InnerException Eigenschaft verfügbar.

Beispiele

Im folgenden Beispiel wird ein Objekt mithilfe eines Stream Objekts serialisiert.

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>

Hinweise

Die Serialize Methode konvertiert die öffentlichen Felder und Lese-/Schreibeigenschaften eines Objekts in XML. Methoden, Indexer, private Felder oder schreibgeschützte Eigenschaften werden nicht konvertiert.

Geben Sie im stream Parameter ein Objekt an, das von der abstrakten Stream Klasse abgeleitet wird. Klassen, die von Stream einschließen:

Note

Die XmlSerializer folgenden Arrays können nicht serialisiert werden: Arrays von ArrayList und Arrays von List<T>.

Weitere Informationen

Gilt für:

Serialize(Stream, Object, XmlSerializerNamespaces)

Quelle:
XmlSerializer.cs
Quelle:
XmlSerializer.cs
Quelle:
XmlSerializer.cs
Quelle:
XmlSerializer.cs
Quelle:
XmlSerializer.cs

Serialisiert das angegebene Object Dokument und schreibt das XML-Dokument mithilfe der angegebenen Stream Eigenschaft, die auf die angegebenen Namespaces verweist.

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);
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("XML serializer relies on dynamic code generation which is not available with Ahead of Time compilation")]
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Members from serialized types may be trimmed if not referenced directly")]
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);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Members from serialized types may be trimmed if not referenced directly")]
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
[<System.Diagnostics.CodeAnalysis.RequiresDynamicCode("XML serializer relies on dynamic code generation which is not available with Ahead of Time compilation")>]
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Members from serialized types may be trimmed if not referenced directly")>]
member this.Serialize : System.IO.Stream * obj * System.Xml.Serialization.XmlSerializerNamespaces -> unit
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Members from serialized types may be trimmed if not referenced directly")>]
member this.Serialize : System.IO.Stream * obj * System.Xml.Serialization.XmlSerializerNamespaces -> unit
Public Sub Serialize (stream As Stream, o As Object, namespaces As XmlSerializerNamespaces)

Parameter

stream
Stream

Wird Stream zum Schreiben des XML-Dokuments verwendet.

o
Object

The Object to serialize.

namespaces
XmlSerializerNamespaces

Der XmlSerializerNamespaces Verweis auf das Objekt.

Attribute

Ausnahmen

Fehler bei der Serialisierung. Die ursprüngliche Ausnahme ist mit der InnerException Eigenschaft verfügbar.

Beispiele

Im folgenden Beispiel wird ein Objekt mit einem Stream Objekt serialisiert. Das Beispiel erstellt außerdem ein XmlSerializerNamespaces und fügt dem Objekt zwei Namespaces hinzu. Die Klasse, die das serialisierte Objekt definiert, wird auch attributen XmlElementAttribute zugeordnet, um den Namespace für jedes Element anzugeben.

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

Hinweise

Wenn die Serialize Methode aufgerufen wird, werden die öffentlichen Felder und Lese-/Schreibeigenschaften eines Objekts in XML konvertiert. Methoden, Indexer, private Felder und schreibgeschützte Eigenschaften werden nicht serialisiert.

Verwenden Sie den stream Parameter, um ein Objekt anzugeben, das von der abstrakten Stream Klasse abgeleitet ist, die zum Schreiben in Datenströme konzipiert ist. Klassen, die von der Stream Klasse abgeleitet werden, umfassen:

Note

Die XmlSerializer folgenden Arrays können nicht serialisiert werden: Arrays von ArrayList und Arrays von List<T>.

Weitere Informationen

Gilt für: