XmlSerializer.Serialize Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Serialisiert ein Objekt in ein XML-Dokument.
Überlädt
Serialize(XmlWriter, Object) |
Serialisiert das angegebene Object und schreibt das XML-Dokument über den angegebenen XmlWriter in eine Datei. |
Serialize(XmlWriter, Object, XmlSerializerNamespaces, String, String) |
Serialisiert das angegebene Object und schreibt das XML-Dokument unter Verwendung des angegebenen XmlWriter, des angegebenen XML-Namespaces und der angegebenen Codierung in eine Datei. |
Serialize(XmlWriter, Object, XmlSerializerNamespaces, String) |
Serialisiert das angegebene Objekt und schreibt das XML-Dokument unter Verwendung des angegebenen XmlWriter in eine Datei, wobei auf die angegebenen Namespaces und den Codierungsstil verwiesen wird. |
Serialize(XmlWriter, Object, XmlSerializerNamespaces) |
Serialisiert das angegebene Object und schreibt das XML-Dokument unter Verwendung des angegebenen XmlWriter in eine Datei, wobei auf die angegebenen Namespaces verwiesen wird. |
Serialize(TextWriter, Object, XmlSerializerNamespaces) |
Serialisiert das angegebene Object und schreibt das XML-Dokument unter Verwendung des angegebenen TextWriter in eine Datei, wobei auf die angegebenen Namespaces verwiesen wird. |
Serialize(Object, XmlSerializationWriter) |
Serialisiert das angegebene Object und schreibt das XML-Dokument über den angegebenen XmlSerializationWriter in eine Datei. |
Serialize(TextWriter, Object) |
Serialisiert das angegebene Object und schreibt das XML-Dokument über den angegebenen TextWriter in eine Datei. |
Serialize(Stream, Object) |
Serialisiert das angegebene Object und schreibt das XML-Dokument über den angegebenen Stream in eine Datei. |
Serialize(Stream, Object, XmlSerializerNamespaces) |
Serialisiert das angegebene Object und schreibt das XML-Dokument unter Verwendung des angegebenen Stream in eine Datei, wobei auf die angegebenen Namespaces verwiesen wird. |
Serialize(XmlWriter, Object)
- Quelle:
- XmlSerializer.cs
- Quelle:
- XmlSerializer.cs
- Quelle:
- XmlSerializer.cs
public:
void Serialize(System::Xml::XmlWriter ^ xmlWriter, System::Object ^ o);
public void Serialize (System.Xml.XmlWriter xmlWriter, object o);
public void Serialize (System.Xml.XmlWriter xmlWriter, object? o);
member this.Serialize : System.Xml.XmlWriter * obj -> unit
Public Sub Serialize (xmlWriter As XmlWriter, o As Object)
Parameter
Ausnahmen
Bei der Serialisierung ist ein Fehler aufgetreten. Die ursprüngliche Ausnahme ist mithilfe der InnerException-Eigenschaft verfügbar.
Beispiele
Im folgenden Beispiel wird ein -Objekt mithilfe von XmlWriterserialisiert.
#using <System.Xml.dll>
#using <System.dll>
using namespace System;
using namespace System::IO;
using namespace System::Text;
using namespace System::Xml;
using namespace System::Xml::Serialization;
// This is the class that will be serialized.
public ref class OrderedItem
{
public:
String^ ItemName;
String^ Description;
Decimal UnitPrice;
int Quantity;
Decimal LineTotal;
// A custom method used to calculate price per item.
void Calculate()
{
LineTotal = UnitPrice * Quantity;
}
};
void SerializeObject( String^ filename )
{
Console::WriteLine( "Writing With XmlTextWriter" );
XmlSerializer^ serializer = gcnew XmlSerializer( OrderedItem::typeid );
OrderedItem^ i = gcnew OrderedItem;
i->ItemName = "Widget";
i->Description = "Regular Widget";
i->Quantity = 10;
i->UnitPrice = (Decimal)2.30;
i->Calculate();
// Create an XmlTextWriter using a FileStream.
Stream^ fs = gcnew FileStream( filename,FileMode::Create );
XmlWriter^ writer = gcnew XmlTextWriter( fs,Encoding::Unicode );
// Serialize using the XmlTextWriter.
serializer->Serialize( writer, i );
writer->Close();
}
int main()
{
// Write a purchase order.
SerializeObject( "simple.xml" );
}
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. Es werden keine Methoden, Indexer, private Felder oder schreibgeschützte Eigenschaften konvertiert.
Geben Sie im xmlWriter
-Parameter ein Objekt an, das von der abstrakten XmlWriter Klasse abgeleitet ist. Die XmlTextWriter wird von abgeleitet XmlWriter.
Hinweis
Die XmlSerializer kann Folgendes nicht serialisieren: Arrays von ArrayList und Arrays von List<T>.
Weitere Informationen
- XmlAttributes
- Deserialize(Stream)
- Einführung in die XML-Serialisierung
- How to: Angeben eines alternativen Elementnamens für einen XML-Stream.
- Steuern der XML-Serialisierung mit Attributen
- Beispiele für die XML-Serialisierung
- XML Schema Definition-Tool (Xsd.exe)
Gilt für:
Serialize(XmlWriter, Object, XmlSerializerNamespaces, String, String)
- Quelle:
- XmlSerializer.cs
- Quelle:
- XmlSerializer.cs
- Quelle:
- XmlSerializer.cs
public:
void Serialize(System::Xml::XmlWriter ^ xmlWriter, System::Object ^ o, System::Xml::Serialization::XmlSerializerNamespaces ^ namespaces, System::String ^ encodingStyle, System::String ^ id);
public void Serialize (System.Xml.XmlWriter xmlWriter, object? o, System.Xml.Serialization.XmlSerializerNamespaces? namespaces, string? encodingStyle, string? id);
public void Serialize (System.Xml.XmlWriter xmlWriter, object o, System.Xml.Serialization.XmlSerializerNamespaces namespaces, string encodingStyle, string id);
member this.Serialize : System.Xml.XmlWriter * obj * System.Xml.Serialization.XmlSerializerNamespaces * string * string -> unit
Public Sub Serialize (xmlWriter As XmlWriter, o As Object, namespaces As XmlSerializerNamespaces, encodingStyle As String, id As String)
Parameter
- o
- Object
Das zu serialisierende Objekt.
- namespaces
- XmlSerializerNamespaces
Eine Instanz von XmlSerializerNamespaces
, die die zu verwendenden Namespaces und Präfixe enthält.
- encodingStyle
- String
Die im Dokument verwendete Codierung.
- id
- String
Bei SOAP-codierten Meldungen die Basis für das Generieren von ID-Attributen.
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, lauten die generierten Werte "myBaseid1", "myBaseid2" usw. Diese Funktionalität wird verwendet, um eindeutige ID-Werte für die gesamte SOAP-Nachricht zu erstellen.
Gilt für:
Serialize(XmlWriter, Object, XmlSerializerNamespaces, String)
- Quelle:
- XmlSerializer.cs
- Quelle:
- XmlSerializer.cs
- Quelle:
- XmlSerializer.cs
Serialisiert das angegebene Objekt und schreibt das XML-Dokument unter Verwendung des angegebenen XmlWriter in eine Datei, wobei auf die angegebenen Namespaces und den Codierungsstil verwiesen wird.
public:
void Serialize(System::Xml::XmlWriter ^ xmlWriter, System::Object ^ o, System::Xml::Serialization::XmlSerializerNamespaces ^ namespaces, System::String ^ encodingStyle);
public void Serialize (System.Xml.XmlWriter xmlWriter, object? o, System.Xml.Serialization.XmlSerializerNamespaces? namespaces, string? encodingStyle);
public void Serialize (System.Xml.XmlWriter xmlWriter, object o, System.Xml.Serialization.XmlSerializerNamespaces namespaces, string encodingStyle);
member this.Serialize : System.Xml.XmlWriter * obj * System.Xml.Serialization.XmlSerializerNamespaces * string -> unit
Public Sub Serialize (xmlWriter As XmlWriter, o As Object, namespaces As XmlSerializerNamespaces, encodingStyle As String)
Parameter
- o
- Object
Das zu serialisierende Objekt.
- namespaces
- XmlSerializerNamespaces
Die XmlSerializerNamespaces, auf die das Objekt verweist.
- encodingStyle
- String
Der Codierungsstil des serialisierten XML-Codes.
Ausnahmen
Bei der Serialisierung ist ein Fehler aufgetreten. Die ursprüngliche Ausnahme ist mithilfe 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 entwickelt wurde. Die XmlTextWriter wird von abgeleitet XmlWriter.
Legen Sie den encodingStyle
Parameter auf "http://schemas.xmlsoap.org/soap/encoding/" für SOAP-Codierung der Version 1.1; andernfalls legen Sie es auf "http://www.w3.org/2001/12/soap-encoding" für die SOAP-Codierung der Version 1.2.
Hinweis
Die XmlSerializer kann Folgendes nicht serialisieren: Arrays von ArrayList und Arrays von List<T>.
Weitere Informationen
- XmlAttributes
- Deserialize(Stream)
- Einführung in die XML-Serialisierung
- How to: Angeben eines alternativen Elementnamens für einen XML-Stream.
- Steuern der XML-Serialisierung mit Attributen
- Beispiele für die XML-Serialisierung
- XML Schema Definition-Tool (Xsd.exe)
Gilt für:
Serialize(XmlWriter, Object, XmlSerializerNamespaces)
- Quelle:
- XmlSerializer.cs
- Quelle:
- XmlSerializer.cs
- Quelle:
- XmlSerializer.cs
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);
public void Serialize (System.Xml.XmlWriter xmlWriter, object? o, System.Xml.Serialization.XmlSerializerNamespaces? namespaces);
member this.Serialize : System.Xml.XmlWriter * obj * System.Xml.Serialization.XmlSerializerNamespaces -> unit
Public Sub Serialize (xmlWriter As XmlWriter, o As Object, namespaces As XmlSerializerNamespaces)
Parameter
- namespaces
- XmlSerializerNamespaces
Die XmlSerializerNamespaces, auf die das Objekt verweist.
Ausnahmen
Bei der Serialisierung ist ein Fehler aufgetreten. Die ursprüngliche Ausnahme ist mithilfe der InnerException-Eigenschaft verfügbar.
Beispiele
Im folgenden Beispiel wird ein -Objekt mit serialisiert XmlWriter. Im Beispiel wird auch ein XmlSerializerNamespaces erstellt und dem -Objekt zwei Namespaces hinzugefügt. Mehrere Instanzen der XmlElementAttribute -Klasse werden auf die Klassenmember angewendet, um den Namespace für jedes Element anzugeben.
#using <System.Xml.dll>
#using <System.dll>
using namespace System;
using namespace System::IO;
using namespace System::Text;
using namespace System::Xml;
using namespace System::Xml::Serialization;
// This is the class that will be serialized.
public ref class OrderedItem
{
public:
[XmlElement(Namespace="http://www.cpandl.com")]
String^ ItemName;
[XmlElement(Namespace="http://www.cpandl.com")]
String^ Description;
[XmlElement(Namespace="http://www.cohowinery.com")]
Decimal UnitPrice;
[XmlElement(Namespace="http://www.cpandl.com")]
int Quantity;
[XmlElement(Namespace="http://www.cohowinery.com")]
Decimal LineTotal;
// A custom method used to calculate price per item.
void Calculate()
{
LineTotal = UnitPrice * Quantity;
}
};
void SerializeObject( String^ filename )
{
Console::WriteLine( "Writing With XmlTextWriter" );
XmlSerializer^ serializer = gcnew XmlSerializer( OrderedItem::typeid );
OrderedItem^ i = gcnew OrderedItem;
i->ItemName = "Widget";
i->Description = "Regular Widget";
i->Quantity = 10;
i->UnitPrice = (Decimal)2.30;
i->Calculate();
// Create an XmlSerializerNamespaces object.
XmlSerializerNamespaces^ ns = gcnew 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.
Stream^ fs = gcnew FileStream( filename,FileMode::Create );
XmlWriter^ writer = gcnew XmlTextWriter( fs,gcnew UTF8Encoding );
// Serialize using the XmlTextWriter.
serializer->Serialize( writer, i, ns );
writer->Close();
}
int main()
{
// Write a purchase order.
SerializeObject( "simple.xml" );
}
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 entwickelt wurde. Die XmlTextWriter wird von abgeleitet XmlWriter.
Hinweis
Die XmlSerializer kann Folgendes nicht serialisieren: Arrays von ArrayList und Arrays von List<T>.
Weitere Informationen
- XmlAttributes
- Deserialize(Stream)
- Einführung in die XML-Serialisierung
- How to: Angeben eines alternativen Elementnamens für einen XML-Stream.
- Steuern der XML-Serialisierung mit Attributen
- Beispiele für die XML-Serialisierung
- XML Schema Definition-Tool (Xsd.exe)
Gilt für:
Serialize(TextWriter, Object, XmlSerializerNamespaces)
- Quelle:
- XmlSerializer.cs
- Quelle:
- XmlSerializer.cs
- Quelle:
- XmlSerializer.cs
Serialisiert das angegebene Object und schreibt das XML-Dokument unter Verwendung des angegebenen TextWriter in eine Datei, wobei auf die angegebenen Namespaces verwiesen wird.
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);
public void Serialize (System.IO.TextWriter textWriter, object? o, System.Xml.Serialization.XmlSerializerNamespaces? namespaces);
member this.Serialize : System.IO.TextWriter * obj * System.Xml.Serialization.XmlSerializerNamespaces -> unit
Public Sub Serialize (textWriter As TextWriter, o As Object, namespaces As XmlSerializerNamespaces)
Parameter
- textWriter
- TextWriter
Der zum Schreiben des XML-Dokuments verwendete TextWriter.
- namespaces
- XmlSerializerNamespaces
Das XmlSerializerNamespaces, das die Namespaces für das generierte XML-Dokument enthält.
Ausnahmen
Bei der Serialisierung ist ein Fehler aufgetreten. Die ursprüngliche Ausnahme ist mithilfe der InnerException-Eigenschaft verfügbar.
Beispiele
Im folgenden Beispiel wird ein -Objekt mit serialisiert TextWriter. Im Beispiel wird auch ein XmlSerializerNamespaces -Objekt erstellt und dem -Objekt zwei Namespaces hinzugefügt. Der Klasse, die das serialisierte Objekt definiert, wird auch Attribute XmlElementAttribute zugewiesen, um den Namespace für jedes Element anzugeben.
#using <System.Xml.dll>
#using <System.dll>
using namespace System;
using namespace System::IO;
using namespace System::Xml::Serialization;
// This is the class that will be serialized.
public ref class OrderedItem
{
public:
[XmlElement(Namespace="http://www.cpandl.com")]
String^ ItemName;
[XmlElement(Namespace="http://www.cpandl.com")]
String^ Description;
[XmlElement(Namespace="http://www.cohowinery.com")]
Decimal UnitPrice;
[XmlElement(Namespace="http://www.cpandl.com")]
int Quantity;
[XmlElement(Namespace="http://www.cohowinery.com")]
Decimal LineTotal;
// A custom method used to calculate price per item.
void Calculate()
{
LineTotal = UnitPrice * Quantity;
}
};
void SerializeObject( String^ filename )
{
Console::WriteLine( "Writing With TextWriter" );
// Create an XmlSerializer instance using the type.
XmlSerializer^ serializer = gcnew XmlSerializer( OrderedItem::typeid );
OrderedItem^ i = gcnew OrderedItem;
i->ItemName = "Widget";
i->Description = "Regular Widget";
i->Quantity = 10;
i->UnitPrice = (Decimal)2.30;
i->Calculate();
// Create an XmlSerializerNamespaces object.
XmlSerializerNamespaces^ ns = gcnew 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.
TextWriter^ writer = gcnew StreamWriter( filename );
/* Serialize using the object using the TextWriter
and namespaces. */
serializer->Serialize( writer, i, ns );
writer->Close();
}
int main()
{
// Write a purchase order.
SerializeObject( "simple.xml" );
}
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 die 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 ist. Klassen, die von der TextWriter -Klasse abgeleitet werden, umfassen:
Hinweis
Die XmlSerializer kann Folgendes nicht serialisieren: Arrays von ArrayList und Arrays von List<T>.
Weitere Informationen
- XmlAttributes
- Einführung in die XML-Serialisierung
- How to: Angeben eines alternativen Elementnamens für einen XML-Stream.
- Steuern der XML-Serialisierung mit Attributen
- Beispiele für die XML-Serialisierung
- XML Schema Definition-Tool (Xsd.exe)
Gilt für:
Serialize(Object, XmlSerializationWriter)
- Quelle:
- XmlSerializer.cs
- Quelle:
- XmlSerializer.cs
- Quelle:
- XmlSerializer.cs
Serialisiert das angegebene Object und schreibt das XML-Dokument über den angegebenen XmlSerializationWriter in eine Datei.
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
- writer
- XmlSerializationWriter
Der zum Schreiben des XML-Dokuments verwendete XmlSerializationWriter.
Ausnahmen
Wenn die Methode nicht in einer abgeleiteten Klasse überschrieben wird, werden alle Versuche unternommen, auf diese Methode zuzugreifen.
Gilt für:
Serialize(TextWriter, Object)
- Quelle:
- XmlSerializer.cs
- Quelle:
- XmlSerializer.cs
- Quelle:
- XmlSerializer.cs
Serialisiert das angegebene Object und schreibt das XML-Dokument über den angegebenen TextWriter in eine Datei.
public:
void Serialize(System::IO::TextWriter ^ textWriter, System::Object ^ o);
public void Serialize (System.IO.TextWriter textWriter, object o);
public void Serialize (System.IO.TextWriter textWriter, object? o);
member this.Serialize : System.IO.TextWriter * obj -> unit
Public Sub Serialize (textWriter As TextWriter, o As Object)
Parameter
- textWriter
- TextWriter
Der zum Schreiben des XML-Dokuments verwendete TextWriter.
Beispiele
Im folgenden Beispiel wird ein -Objekt mithilfe von TextWriterserialisiert.
#using <System.Xml.dll>
#using <System.dll>
using namespace System;
using namespace System::IO;
using namespace System::Text;
using namespace System::Xml::Serialization;
// This is the class that will be serialized.
public ref class OrderedItem
{
public:
String^ ItemName;
String^ Description;
Decimal UnitPrice;
int Quantity;
Decimal LineTotal;
// A custom method used to calculate price per item.
void Calculate()
{
LineTotal = UnitPrice * Quantity;
}
};
void SerializeObject( String^ filename )
{
Console::WriteLine( "Writing With TextWriter" );
XmlSerializer^ serializer = gcnew XmlSerializer( OrderedItem::typeid );
OrderedItem^ i = gcnew OrderedItem;
i->ItemName = "Widget";
i->Description = "Regular Widget";
i->Quantity = 10;
i->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 = gcnew FileStream( filename,FileMode::Create );
TextWriter^ writer = gcnew StreamWriter( fs,gcnew UTF8Encoding );
// Serialize using the XmlTextWriter.
serializer->Serialize( writer, i );
writer->Close();
}
int main()
{
// Write a purchase order.
SerializeObject( "simple.xml" );
}
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. Es werden keine Methoden, Indexer, private Felder oder schreibgeschützte Eigenschaften konvertiert.
Geben Sie im textWriter
-Parameter ein Objekt an, das von der abstrakten TextWriter Klasse abgeleitet ist. Klassen, die von TextWriter abgeleitet werden, umfassen:
Hinweis
Die XmlSerializer kann Folgendes nicht serialisieren: Arrays von ArrayList und Arrays von List<T>.
Weitere Informationen
- XmlAttributes
- Einführung in die XML-Serialisierung
- How to: Angeben eines alternativen Elementnamens für einen XML-Stream.
- Steuern der XML-Serialisierung mit Attributen
- Beispiele für die XML-Serialisierung
- XML Schema Definition-Tool (Xsd.exe)
Gilt für:
Serialize(Stream, Object)
- Quelle:
- XmlSerializer.cs
- Quelle:
- XmlSerializer.cs
- Quelle:
- XmlSerializer.cs
public:
void Serialize(System::IO::Stream ^ stream, System::Object ^ o);
public void Serialize (System.IO.Stream stream, object o);
public void Serialize (System.IO.Stream stream, object? o);
member this.Serialize : System.IO.Stream * obj -> unit
Public Sub Serialize (stream As Stream, o As Object)
Parameter
Ausnahmen
Bei der Serialisierung ist ein Fehler aufgetreten. Die ursprüngliche Ausnahme ist mithilfe der InnerException-Eigenschaft verfügbar.
Beispiele
Im folgenden Beispiel wird ein -Objekt mithilfe eines Stream -Objekts serialisiert.
#using <System.Xml.dll>
#using <System.dll>
using namespace System;
using namespace System::IO;
using namespace System::Xml::Serialization;
// This is the class that will be serialized.
public ref class OrderedItem
{
public:
String^ ItemName;
String^ Description;
Decimal UnitPrice;
int Quantity;
Decimal LineTotal;
// A custom method used to calculate price per item.
void Calculate()
{
LineTotal = UnitPrice * Quantity;
}
};
void SerializeObject( String^ filename )
{
Console::WriteLine( "Writing With Stream" );
XmlSerializer^ serializer = gcnew XmlSerializer( OrderedItem::typeid );
OrderedItem^ i = gcnew OrderedItem;
i->ItemName = "Widget";
i->Description = "Regular Widget";
i->Quantity = 10;
i->UnitPrice = (Decimal)2.30;
i->Calculate();
// Create a FileStream to write with.
Stream^ writer = gcnew FileStream( filename,FileMode::Create );
// Serialize the object, and close the TextWriter
serializer->Serialize( writer, i );
writer->Close();
}
int main()
{
// Write a purchase order.
SerializeObject( "simple.xml" );
}
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. Es werden keine Methoden, Indexer, private Felder oder schreibgeschützte Eigenschaften konvertiert.
Geben Sie im stream
-Parameter ein Objekt an, das von der abstrakten Stream Klasse abgeleitet ist. Klassen, die von Stream abgeleitet werden, umfassen:
Hinweis
Die XmlSerializer kann Folgendes nicht serialisieren: Arrays von ArrayList und Arrays von List<T>.
Weitere Informationen
- XmlAttributes
- Deserialize(Stream)
- Einführung in die XML-Serialisierung
- How to: Angeben eines alternativen Elementnamens für einen XML-Stream.
- Steuern der XML-Serialisierung mit Attributen
- Beispiele für die XML-Serialisierung
- XML Schema Definition-Tool (Xsd.exe)
Gilt für:
Serialize(Stream, Object, XmlSerializerNamespaces)
- Quelle:
- XmlSerializer.cs
- Quelle:
- XmlSerializer.cs
- Quelle:
- XmlSerializer.cs
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);
public void Serialize (System.IO.Stream stream, object? o, System.Xml.Serialization.XmlSerializerNamespaces? namespaces);
member this.Serialize : System.IO.Stream * obj * System.Xml.Serialization.XmlSerializerNamespaces -> unit
Public Sub Serialize (stream As Stream, o As Object, namespaces As XmlSerializerNamespaces)
Parameter
- namespaces
- XmlSerializerNamespaces
Die XmlSerializerNamespaces, auf die das Objekt verweist.
Ausnahmen
Bei der Serialisierung ist ein Fehler aufgetreten. Die ursprüngliche Ausnahme ist mithilfe der InnerException-Eigenschaft verfügbar.
Beispiele
Im folgenden Beispiel wird ein -Objekt mit einem Stream -Objekt serialisiert. Im Beispiel wird auch ein XmlSerializerNamespaces erstellt und dem -Objekt zwei Namespaces hinzugefügt. Der Klasse, die das serialisierte Objekt definiert, wird auch Attribute XmlElementAttribute zugewiesen, um den Namespace für jedes Element anzugeben.
#using <System.Xml.dll>
#using <System.dll>
using namespace System;
using namespace System::IO;
using namespace System::Xml::Serialization;
// This is the class that will be serialized.
public ref class OrderedItem
{
public:
[XmlElement(Namespace="http://www.cpandl.com")]
String^ ItemName;
[XmlElement(Namespace="http://www.cpandl.com")]
String^ Description;
[XmlElement(Namespace="http://www.cohowinery.com")]
Decimal UnitPrice;
[XmlElement(Namespace="http://www.cpandl.com")]
int Quantity;
[XmlElement(Namespace="http://www.cohowinery.com")]
Decimal LineTotal;
// A custom method used to calculate price per item.
void Calculate()
{
LineTotal = UnitPrice * Quantity;
}
};
void SerializeObject( String^ filename )
{
Console::WriteLine( "Writing With Stream" );
XmlSerializer^ serializer = gcnew XmlSerializer( OrderedItem::typeid );
OrderedItem^ i = gcnew OrderedItem;
i->ItemName = "Widget";
i->Description = "Regular Widget";
i->Quantity = 10;
i->UnitPrice = (Decimal)2.30;
i->Calculate();
// Create an XmlSerializerNamespaces object.
XmlSerializerNamespaces^ ns = gcnew 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.
Stream^ writer = gcnew FileStream( filename,FileMode::Create );
// Serialize the object, and close the TextWriter
serializer->Serialize( writer, i, ns );
writer->Close();
}
void DeserializeObject( String^ filename )
{
Console::WriteLine( "Reading with Stream" );
// Create an instance of the XmlSerializer.
XmlSerializer^ serializer = gcnew XmlSerializer( OrderedItem::typeid );
// Writing the file requires a Stream.
Stream^ reader = gcnew FileStream( filename,FileMode::Open );
// Declare an object variable of the type to be deserialized.
OrderedItem^ i;
/* Use the Deserialize method to restore the object's state
using data from the XML document. */
i = dynamic_cast<OrderedItem^>(serializer->Deserialize( reader ));
// Write out the properties of the object.
Console::Write( "{0}\t{1}\t{2}\t{3}\t{4}", i->ItemName, i->Description, i->UnitPrice, i->Quantity, i->LineTotal );
}
int main()
{
// Write a purchase order.
SerializeObject( "simple.xml" );
DeserializeObject( "simple.xml" );
}
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 Streams konzipiert ist. Klassen, die von der Stream -Klasse abgeleitet werden, umfassen:
Hinweis
Die XmlSerializer kann Folgendes nicht serialisieren: Arrays von ArrayList und Arrays von List<T>.
Weitere Informationen
- XmlAttributes
- Deserialize(Stream)
- Einführung in die XML-Serialisierung
- How to: Angeben eines alternativen Elementnamens für einen XML-Stream.
- Steuern der XML-Serialisierung mit Attributen
- Beispiele für die XML-Serialisierung
- XML Schema Definition-Tool (Xsd.exe)