XmlSerializer.Serialize Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Serializuje objekt do dokumentu XML.
Přetížení
Serialize(XmlWriter, Object) |
Serializuje zadaný Object a zapíše dokument XML do souboru pomocí zadaného XmlWriter. |
Serialize(XmlWriter, Object, XmlSerializerNamespaces, String, String) |
Serializuje zadaný Object a zapíše dokument XML do souboru pomocí zadané XmlWriter, XML obory názvů, a kódování. |
Serialize(XmlWriter, Object, XmlSerializerNamespaces, String) |
Serializuje zadaný objekt a zapíše dokument XML do souboru pomocí zadané XmlWriter a odkazuje na zadané obory názvů a styl kódování. |
Serialize(XmlWriter, Object, XmlSerializerNamespaces) |
Serializuje zadaný Object a zapíše dokument XML do souboru pomocí zadané XmlWriter a odkazuje na zadané obory názvů. |
Serialize(TextWriter, Object, XmlSerializerNamespaces) |
Serializuje zadaný Object a zapíše dokument XML do souboru pomocí zadané TextWriter a odkazuje na zadané obory názvů. |
Serialize(Object, XmlSerializationWriter) |
Serializuje zadaný Object a zapíše dokument XML do souboru pomocí zadaného XmlSerializationWriter. |
Serialize(TextWriter, Object) |
Serializuje zadaný Object a zapíše dokument XML do souboru pomocí zadaného TextWriter. |
Serialize(Stream, Object) |
Serializuje zadaný Object a zapíše dokument XML do souboru pomocí zadaného Stream. |
Serialize(Stream, Object, XmlSerializerNamespaces) |
Serializuje zadaný Object a zapíše dokument XML do souboru pomocí zadané Stream , který odkazuje na zadané obory názvů. |
Serialize(XmlWriter, Object)
- Zdroj:
- XmlSerializer.cs
- Zdroj:
- XmlSerializer.cs
- Zdroj:
- XmlSerializer.cs
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)
Parametry
Výjimky
Během serializace došlo k chybě. Původní výjimka je k dispozici pomocí InnerException vlastnosti .
Příklady
Následující příklad serializuje objekt pomocí XmlWriter.
#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>
Poznámky
Metoda Serialize převede veřejná pole a vlastnosti objektu pro čtení a zápis do xml. Nepřevádí metody, indexery, privátní pole ani vlastnosti jen pro čtení.
V parametru xmlWriter
zadejte objekt, který je odvozen z abstraktní XmlWriter třídy. Odvozuje XmlTextWriter se z .XmlWriter
Poznámka
Nelze XmlSerializer serializovat následující: pole ArrayList a pole .List<T>
Viz také
- XmlAttributes
- Deserialize(Stream)
- Představení serializace XML
- Postupy: Zadání alternativního názvu elementu pro XML stream
- Řízení serializace XML pomocí atributů
- Příklady serializace XML
- Nástroj pro definici schématu XML (Xsd.exe)
Platí pro
Serialize(XmlWriter, Object, XmlSerializerNamespaces, String, String)
- Zdroj:
- XmlSerializer.cs
- Zdroj:
- XmlSerializer.cs
- Zdroj:
- 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)
Parametry
- o
- Object
Objekt serializovat.
- namespaces
- XmlSerializerNamespaces
Instance , XmlSerializerNamespaces
která obsahuje obory názvů a předpony k použití.
- encodingStyle
- String
Kódování použité v dokumentu.
- id
- String
Pro zprávy kódované protokolem SOAP základ použitý ke generování atributů ID.
Poznámky
Parametr id poskytuje základní řetězec použitý k vytvoření ID PROTOKOLU SOAP. Ve výchozím nastavení jsou to id1, id2 atd. Pokud je ale parametr nastavený na myBase, vygenerované hodnoty jsou myBaseid1, myBaseid2 atd. Tato funkce slouží k vytvoření jedinečných hodnot ID v celé zprávě SOAP.
Platí pro
Serialize(XmlWriter, Object, XmlSerializerNamespaces, String)
- Zdroj:
- XmlSerializer.cs
- Zdroj:
- XmlSerializer.cs
- Zdroj:
- XmlSerializer.cs
Serializuje zadaný objekt a zapíše dokument XML do souboru pomocí zadané XmlWriter a odkazuje na zadané obory názvů a styl kódování.
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)
Parametry
- o
- Object
Objekt serializovat.
- namespaces
- XmlSerializerNamespaces
Objekt XmlSerializerNamespaces odkazovaný objektem .
- encodingStyle
- String
Styl kódování serializované XML.
Výjimky
Během serializace došlo k chybě. Původní výjimka je k dispozici pomocí InnerException vlastnosti .
Poznámky
Při vyvolání Serialize metody se veřejná pole a vlastnosti pro čtení a zápis objektu převedou na XML. Metody, indexery, privátní pole a vlastnosti jen pro čtení nejsou serializovány.
xmlWriter
Použijte parametr k určení objektu, který je odvozen z abstraktní XmlWriter třídy, která je určena k zápisu dokumentů XML. Odvozuje XmlTextWriter se z .XmlWriter
encodingStyle
Nastavte parametr na "http://schemas.xmlsoap.org/soap/encoding/" pro kódování SOAP verze 1.1; jinak ji nastavte na "http://www.w3.org/2001/12/soap-encoding" pro kódování SOAP verze 1.2.
Poznámka
Nelze XmlSerializer serializovat následující: pole ArrayList a pole .List<T>
Viz také
- XmlAttributes
- Deserialize(Stream)
- Představení serializace XML
- Postupy: Zadání alternativního názvu elementu pro XML stream
- Řízení serializace XML pomocí atributů
- Příklady serializace XML
- Nástroj pro definici schématu XML (Xsd.exe)
Platí pro
Serialize(XmlWriter, Object, XmlSerializerNamespaces)
- Zdroj:
- XmlSerializer.cs
- Zdroj:
- XmlSerializer.cs
- Zdroj:
- 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)
Parametry
- namespaces
- XmlSerializerNamespaces
Objekt XmlSerializerNamespaces odkazovaný objektem .
Výjimky
Během serializace došlo k chybě. Původní výjimka je k dispozici pomocí InnerException vlastnosti .
Příklady
Následující příklad serializuje objekt pomocí XmlWriter. Příklad také vytvoří XmlSerializerNamespaces a přidá do objektu dva obory názvů. Několik instancí XmlElementAttribute třídy je použito na členy třídy k určení oboru názvů pro každý prvek.
#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>
Poznámky
Při vyvolání Serialize metody se veřejná pole a vlastnosti pro čtení a zápis objektu převedou na XML. Metody, indexery, privátní pole a vlastnosti jen pro čtení nejsou serializovány.
xmlWriter
Použijte parametr k určení objektu, který je odvozen z abstraktní XmlWriter třídy, která je určena k zápisu dokumentů XML. Odvozuje XmlTextWriter se z .XmlWriter
Poznámka
Nelze XmlSerializer serializovat následující: pole ArrayList a pole .List<T>
Viz také
- XmlAttributes
- Deserialize(Stream)
- Představení serializace XML
- Postupy: Zadání alternativního názvu elementu pro XML stream
- Řízení serializace XML pomocí atributů
- Příklady serializace XML
- Nástroj pro definici schématu XML (Xsd.exe)
Platí pro
Serialize(TextWriter, Object, XmlSerializerNamespaces)
- Zdroj:
- XmlSerializer.cs
- Zdroj:
- XmlSerializer.cs
- Zdroj:
- XmlSerializer.cs
Serializuje zadaný Object a zapíše dokument XML do souboru pomocí zadané TextWriter a odkazuje na zadané obory názvů.
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)
Parametry
- textWriter
- TextWriter
Slouží TextWriter k zápisu dokumentu XML.
- namespaces
- XmlSerializerNamespaces
Obsahuje XmlSerializerNamespaces obory názvů pro vygenerovaný dokument XML.
Výjimky
Během serializace došlo k chybě. Původní výjimka je k dispozici pomocí InnerException vlastnosti .
Příklady
Následující příklad serializuje objekt pomocí TextWriter. Příklad také vytvoří XmlSerializerNamespaces objekt a přidá do objektu dva obory názvů. Třída, která definuje serializovaný objekt, je také přiřazena XmlElementAttribute atributy pro určení oboru názvů pro každý prvek.
#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>
Poznámky
Při vyvolání Serialize metody se veřejná pole a vlastnosti pro čtení a zápis objektu převedou na XML. Metody, indexery, privátní pole a vlastnosti jen pro čtení nejsou serializovány.
textWriter
Použijte parametr k určení objektu, který je odvozen z abstraktní TextWriter třídy. Mezi třídy odvozené z TextWriter třídy patří:
Poznámka
Nelze XmlSerializer serializovat následující: pole ArrayList a pole .List<T>
Viz také
- XmlAttributes
- Představení serializace XML
- Postupy: Zadání alternativního názvu elementu pro XML stream
- Řízení serializace XML pomocí atributů
- Příklady serializace XML
- Nástroj pro definici schématu XML (Xsd.exe)
Platí pro
Serialize(Object, XmlSerializationWriter)
- Zdroj:
- XmlSerializer.cs
- Zdroj:
- XmlSerializer.cs
- Zdroj:
- XmlSerializer.cs
Serializuje zadaný Object a zapíše dokument XML do souboru pomocí zadané XmlSerializationWriter.
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)
Parametry
- writer
- XmlSerializationWriter
Slouží XmlSerializationWriter k zápisu dokumentu XML.
Výjimky
Jakýkoli pokus o přístup k metodě, pokud metoda není přepsána v následné třídě.
Platí pro
Serialize(TextWriter, Object)
- Zdroj:
- XmlSerializer.cs
- Zdroj:
- XmlSerializer.cs
- Zdroj:
- XmlSerializer.cs
Serializuje zadaný Object a zapíše dokument XML do souboru pomocí zadané TextWriter.
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)
Parametry
- textWriter
- TextWriter
Slouží TextWriter k zápisu dokumentu XML.
Příklady
Následující příklad serializuje objekt pomocí TextWriter.
#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>
Poznámky
Metoda Serialize převede veřejná pole a vlastnosti pro čtení/zápis objektu na XML. Nepřevádí metody, indexery, privátní pole ani vlastnosti jen pro čtení.
V parametru textWriter
zadejte objekt, který je odvozen z abstraktní TextWriter třídy. Mezi třídy, které jsou odvozeny, TextWriter patří:
Poznámka
Nelze XmlSerializer serializovat následující: pole ArrayList a pole .List<T>
Viz také
- XmlAttributes
- Představení serializace XML
- Postupy: Zadání alternativního názvu elementu pro XML stream
- Řízení serializace XML pomocí atributů
- Příklady serializace XML
- Nástroj pro definici schématu XML (Xsd.exe)
Platí pro
Serialize(Stream, Object)
- Zdroj:
- XmlSerializer.cs
- Zdroj:
- XmlSerializer.cs
- Zdroj:
- 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)
Parametry
Výjimky
Během serializace došlo k chybě. Původní výjimka je k dispozici pomocí InnerException vlastnosti .
Příklady
Následující příklad serializuje objekt pomocí objektu Stream .
#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>
Poznámky
Metoda Serialize převede veřejná pole a vlastnosti pro čtení/zápis objektu na XML. Nepřevádí metody, indexery, privátní pole ani vlastnosti jen pro čtení.
V parametru stream
zadejte objekt, který je odvozen z abstraktní Stream třídy. Mezi třídy, které jsou odvozeny, Stream patří:
Poznámka
Nelze XmlSerializer serializovat následující: pole ArrayList a pole .List<T>
Viz také
- XmlAttributes
- Deserialize(Stream)
- Představení serializace XML
- Postupy: Zadání alternativního názvu elementu pro XML stream
- Řízení serializace XML pomocí atributů
- Příklady serializace XML
- Nástroj pro definici schématu XML (Xsd.exe)
Platí pro
Serialize(Stream, Object, XmlSerializerNamespaces)
- Zdroj:
- XmlSerializer.cs
- Zdroj:
- XmlSerializer.cs
- Zdroj:
- 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)
Parametry
- namespaces
- XmlSerializerNamespaces
Objekt XmlSerializerNamespaces odkazovaný objektem.
Výjimky
Během serializace došlo k chybě. Původní výjimka je k dispozici pomocí InnerException vlastnosti .
Příklady
Následující příklad serializuje objekt s objektem Stream . Příklad také vytvoří XmlSerializerNamespaces a přidá do objektu dva obory názvů. Třída, která definuje serializovaný objekt, je také přiřazena atributy XmlElementAttribute pro určení oboru názvů pro každý prvek.
#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
Poznámky
Při vyvolání Serialize metody jsou veřejná pole a vlastnosti pro čtení/zápis objektu převedeny na XML. Metody, indexery, privátní pole a vlastnosti jen pro čtení nejsou serializovány.
Pomocí parametru stream
určete objekt, který je odvozen z abstraktní Stream třídy, která je určena k zápisu do datových proudů. Mezi třídy odvozené z Stream třídy patří:
Poznámka
Nelze XmlSerializer serializovat následující: pole ArrayList a pole .List<T>
Viz také
- XmlAttributes
- Deserialize(Stream)
- Představení serializace XML
- Postupy: Zadání alternativního názvu elementu pro XML stream
- Řízení serializace XML pomocí atributů
- Příklady serializace XML
- Nástroj pro definici schématu XML (Xsd.exe)