XmlSerializer.Serialize Metódus
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Egy objektumot XML-dokumentummá szerializál.
Túlterhelések
| Name | Description |
|---|---|
| Serialize(XmlWriter, Object) |
Szerializálja a megadott Object fájlt, és a megadott XmlWriterfájlba írja az XML-dokumentumot. |
| Serialize(XmlWriter, Object, XmlSerializerNamespaces, String, String) |
Szerializálja a megadott Object fájlt, és egy fájlba írja az XML-dokumentumot a megadott XmlWriterXML-névterek és kódolás használatával. |
| Serialize(XmlWriter, Object, XmlSerializerNamespaces, String) |
Szerializálja a megadott objektumot, és a megadott XmlWriter névterekre és kódolási stílusra hivatkozva egy fájlba írja az XML-dokumentumot. |
| Serialize(XmlWriter, Object, XmlSerializerNamespaces) |
Szerializálja a megadott Object fájlt, és a megadott XmlWriter névterekre hivatkozva egy fájlba írja az XML-dokumentumot. |
| Serialize(TextWriter, Object, XmlSerializerNamespaces) |
Szerializálja a megadott Object fájlt, és a megadott TextWriter névterekre hivatkozva egy fájlba írja az XML-dokumentumot. |
| Serialize(Object, XmlSerializationWriter) |
Szerializálja a megadott Object fájlt, és a megadott XmlSerializationWriterfájlba írja az XML-dokumentumot. |
| Serialize(TextWriter, Object) |
Szerializálja a megadott Object fájlt, és a megadott TextWriterfájlba írja az XML-dokumentumot. |
| Serialize(Stream, Object) |
Szerializálja a megadott Object fájlt, és a megadott Streamfájlba írja az XML-dokumentumot. |
| Serialize(Stream, Object, XmlSerializerNamespaces) |
Szerializálja a megadott Object fájlt, és a megadott Stream névterekre hivatkozó fájlba írja az XML-dokumentumot. |
Serialize(XmlWriter, Object)
- Forrás:
- XmlSerializer.cs
- Forrás:
- XmlSerializer.cs
- Forrás:
- XmlSerializer.cs
- Forrás:
- XmlSerializer.cs
- Forrás:
- XmlSerializer.cs
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)
Paraméterek
- Attribútumok
Kivételek
Hiba történt a szerializálás során. Az eredeti kivétel a InnerException tulajdonság használatával érhető el.
Példák
Az alábbi példa szerializál egy objektumot egy 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>
Megjegyzések
A Serialize metódus XML-fájllá alakítja az objektumok nyilvános mezőit és olvasási/írási tulajdonságait. Nem konvertál metódusokat, indexelőket, privát mezőket vagy írásvédett tulajdonságokat.
A paraméterben xmlWriter adjon meg egy objektumot, amely az absztrakt XmlWriter osztályból származik. A XmlTextWriter származik a XmlWriter.
Note
A XmlSerializer következő nem szerializálható: tömbök ArrayList és tömbök List<T>.
Lásd még
- XmlAttributes
- Deserialize(Stream)
- Az XML-szerializálás bemutatása
- Útmutató: Alternatív elemnév megadása XML-adatfolyamhoz
- XML-szerializálás szabályozása attribútumokkal
- Példák XML-szerializálásra
- XML-sémadefiníciós eszköz (Xsd.exe)
A következőre érvényes:
Serialize(XmlWriter, Object, XmlSerializerNamespaces, String, String)
- Forrás:
- XmlSerializer.cs
- Forrás:
- XmlSerializer.cs
- Forrás:
- XmlSerializer.cs
- Forrás:
- XmlSerializer.cs
- Forrás:
- XmlSerializer.cs
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)
Paraméterek
- o
- Object
A szerializálandó objektum.
- namespaces
- XmlSerializerNamespaces
A használni kívánt névtereket és előtagokat tartalmazó példány XmlSerializerNamespaces .
- encodingStyle
- String
A dokumentumban használt kódolás.
- id
- String
A SOAP kódolású üzenetek esetében az azonosító attribútumok létrehozásához használt alap.
- Attribútumok
Megjegyzések
Az azonosító paraméter tartalmazza a SOAP-azonosítók létrehozásához használt alapsztringet. Alapértelmezés szerint ezek az "id1", "id2" és így tovább. Ha azonban a paraméter "myBase" értékre van állítva, a létrehozott értékek a "myBaseid1", a "myBaseid2" és így tovább. Ezzel a funkcióval egyedi azonosítóértékeket hozhat létre a teljes SOAP-üzenetben.
A következőre érvényes:
Serialize(XmlWriter, Object, XmlSerializerNamespaces, String)
- Forrás:
- XmlSerializer.cs
- Forrás:
- XmlSerializer.cs
- Forrás:
- XmlSerializer.cs
- Forrás:
- XmlSerializer.cs
- Forrás:
- XmlSerializer.cs
Szerializálja a megadott objektumot, és a megadott XmlWriter névterekre és kódolási stílusra hivatkozva egy fájlba írja az XML-dokumentumot.
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)
Paraméterek
- o
- Object
A szerializálandó objektum.
- namespaces
- XmlSerializerNamespaces
Az XmlSerializerNamespaces objektum által hivatkozott.
- encodingStyle
- String
A szerializált XML kódolási stílusa.
- Attribútumok
Kivételek
Hiba történt a szerializálás során. Az eredeti kivétel a InnerException tulajdonság használatával érhető el.
Megjegyzések
A Serialize metódus meghívásakor az objektum nyilvános mezői és olvasási/írási tulajdonságai XML-fájllá alakulnak. A metódusok, indexelők, privát mezők és írásvédett tulajdonságok nincsenek szerializálva.
A paraméter használatával xmlWriter megadhat egy objektumot, amely az XML-dokumentumok írására tervezett absztrakt XmlWriter osztályból származik. A XmlTextWriter származik a XmlWriter.
Állítsa a paramétert encodingStyle "http://schemas.xmlsoap.org/soap/encoding/" a SOAP 1.1-es kódolásához; ellenkező esetben állítsa be a következőre: "http://www.w3.org/2001/12/soap-encoding" a SOAP 1.2-es kódolásához.
Note
A XmlSerializer következő nem szerializálható: tömbök ArrayList és tömbök List<T>.
Lásd még
- XmlAttributes
- Deserialize(Stream)
- Az XML-szerializálás bemutatása
- Útmutató: Alternatív elemnév megadása XML-adatfolyamhoz
- XML-szerializálás szabályozása attribútumokkal
- Példák XML-szerializálásra
- XML-sémadefiníciós eszköz (Xsd.exe)
A következőre érvényes:
Serialize(XmlWriter, Object, XmlSerializerNamespaces)
- Forrás:
- XmlSerializer.cs
- Forrás:
- XmlSerializer.cs
- Forrás:
- XmlSerializer.cs
- Forrás:
- XmlSerializer.cs
- Forrás:
- 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);
[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)
Paraméterek
- namespaces
- XmlSerializerNamespaces
Az XmlSerializerNamespaces objektum által hivatkozott.
- Attribútumok
Kivételek
Hiba történt a szerializálás során. Az eredeti kivétel a InnerException tulajdonság használatával érhető el.
Példák
Az alábbi példa szerializál egy objektumot egy XmlWriter. A példa létrehoz egy XmlSerializerNamespaces névteret is, és két névteret ad hozzá az objektumhoz. A rendszer az XmlElementAttribute osztály több példányát alkalmazza az osztálytagokra az egyes elemek névterének megadásához.
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>
Megjegyzések
A Serialize metódus meghívásakor az objektum nyilvános mezői és olvasási/írási tulajdonságai XML-fájllá alakulnak. A metódusok, indexelők, privát mezők és írásvédett tulajdonságok nincsenek szerializálva.
A paraméter használatával xmlWriter megadhat egy objektumot, amely az XML-dokumentumok írására tervezett absztrakt XmlWriter osztályból származik. A XmlTextWriter származik a XmlWriter.
Note
A XmlSerializer következő nem szerializálható: tömbök ArrayList és tömbök List<T>.
Lásd még
- XmlAttributes
- Deserialize(Stream)
- Az XML-szerializálás bemutatása
- Útmutató: Alternatív elemnév megadása XML-adatfolyamhoz
- XML-szerializálás szabályozása attribútumokkal
- Példák XML-szerializálásra
- XML-sémadefiníciós eszköz (Xsd.exe)
A következőre érvényes:
Serialize(TextWriter, Object, XmlSerializerNamespaces)
- Forrás:
- XmlSerializer.cs
- Forrás:
- XmlSerializer.cs
- Forrás:
- XmlSerializer.cs
- Forrás:
- XmlSerializer.cs
- Forrás:
- XmlSerializer.cs
Szerializálja a megadott Object fájlt, és a megadott TextWriter névterekre hivatkozva egy fájlba írja az XML-dokumentumot.
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)
Paraméterek
- textWriter
- TextWriter
Az TextWriter XML-dokumentum írásához használt.
- namespaces
- XmlSerializerNamespaces
A XmlSerializerNamespaces létrehozott XML-dokumentum névtereit tartalmazó.
- Attribútumok
Kivételek
Hiba történt a szerializálás során. Az eredeti kivétel a InnerException tulajdonság használatával érhető el.
Példák
Az alábbi példa szerializál egy objektumot egy TextWriter. A példa egy objektumot XmlSerializerNamespaces is létrehoz, és két névteret ad hozzá az objektumhoz. A szerializált objektumot meghatározó osztály attribútumokkal XmlElementAttribute is rendelkezik az egyes elemek névterének megadásához.
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>
Megjegyzések
A metódus meghívásakor az Serialize objektum nyilvános mezői és olvasási/írási tulajdonságai XML-fájllá alakulnak. A metódusok, indexelők, privát mezők és írásvédett tulajdonságok nincsenek szerializálva.
A paraméter használatával textWriter adjon meg egy objektumot, amely az absztrakt TextWriter osztályból származik. Az osztályból TextWriter származó osztályok a következők:
Note
A XmlSerializer következő nem szerializálható: tömbök ArrayList és tömbök List<T>.
Lásd még
- XmlAttributes
- Az XML-szerializálás bemutatása
- Útmutató: Alternatív elemnév megadása XML-adatfolyamhoz
- XML-szerializálás szabályozása attribútumokkal
- Példák XML-szerializálásra
- XML-sémadefiníciós eszköz (Xsd.exe)
A következőre érvényes:
Serialize(Object, XmlSerializationWriter)
- Forrás:
- XmlSerializer.cs
- Forrás:
- XmlSerializer.cs
- Forrás:
- XmlSerializer.cs
- Forrás:
- XmlSerializer.cs
- Forrás:
- XmlSerializer.cs
Szerializálja a megadott Object fájlt, és a megadott XmlSerializationWriterfájlba írja az XML-dokumentumot.
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)
Paraméterek
- writer
- XmlSerializationWriter
Az XmlSerializationWriter XML-dokumentum írásához használt.
Kivételek
Minden kísérlet a metódus elérésére, ha a metódust nem bírálják felül egy leszármazott osztályban.
A következőre érvényes:
Serialize(TextWriter, Object)
- Forrás:
- XmlSerializer.cs
- Forrás:
- XmlSerializer.cs
- Forrás:
- XmlSerializer.cs
- Forrás:
- XmlSerializer.cs
- Forrás:
- XmlSerializer.cs
Szerializálja a megadott Object fájlt, és a megadott TextWriterfájlba írja az XML-dokumentumot.
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)
Paraméterek
- textWriter
- TextWriter
Az TextWriter XML-dokumentum írásához használt.
- Attribútumok
Példák
Az alábbi példa szerializál egy objektumot egy 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>
Megjegyzések
A Serialize metódus XML-fájllá alakítja az objektumok nyilvános mezőit és olvasási/írási tulajdonságait. Nem konvertál metódusokat, indexelőket, privát mezőket vagy írásvédett tulajdonságokat.
A paraméterben textWriter adjon meg egy objektumot, amely az absztrakt TextWriter osztályból származik. A következőkből TextWriter származó osztályok:
Note
A XmlSerializer következő nem szerializálható: tömbök ArrayList és tömbök List<T>.
Lásd még
- XmlAttributes
- Az XML-szerializálás bemutatása
- Útmutató: Alternatív elemnév megadása XML-adatfolyamhoz
- XML-szerializálás szabályozása attribútumokkal
- Példák XML-szerializálásra
- XML-sémadefiníciós eszköz (Xsd.exe)
A következőre érvényes:
Serialize(Stream, Object)
- Forrás:
- XmlSerializer.cs
- Forrás:
- XmlSerializer.cs
- Forrás:
- XmlSerializer.cs
- Forrás:
- XmlSerializer.cs
- Forrás:
- XmlSerializer.cs
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)
Paraméterek
- Attribútumok
Kivételek
Hiba történt a szerializálás során. Az eredeti kivétel a InnerException tulajdonság használatával érhető el.
Példák
Az alábbi példa egy objektumot szerializál egy Stream objektum használatával.
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>
Megjegyzések
A Serialize metódus XML-fájllá alakítja az objektumok nyilvános mezőit és olvasási/írási tulajdonságait. Nem konvertál metódusokat, indexelőket, privát mezőket vagy írásvédett tulajdonságokat.
A paraméterben stream adjon meg egy objektumot, amely az absztrakt Stream osztályból származik. A következőkből Stream származó osztályok:
Note
A XmlSerializer következő nem szerializálható: tömbök ArrayList és tömbök List<T>.
Lásd még
- XmlAttributes
- Deserialize(Stream)
- Az XML-szerializálás bemutatása
- Útmutató: Alternatív elemnév megadása XML-adatfolyamhoz
- XML-szerializálás szabályozása attribútumokkal
- Példák XML-szerializálásra
- XML-sémadefiníciós eszköz (Xsd.exe)
A következőre érvényes:
Serialize(Stream, Object, XmlSerializerNamespaces)
- Forrás:
- XmlSerializer.cs
- Forrás:
- XmlSerializer.cs
- Forrás:
- XmlSerializer.cs
- Forrás:
- XmlSerializer.cs
- Forrás:
- 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);
[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)
Paraméterek
- namespaces
- XmlSerializerNamespaces
Az XmlSerializerNamespaces objektum által hivatkozott.
- Attribútumok
Kivételek
Hiba történt a szerializálás során. Az eredeti kivétel a InnerException tulajdonság használatával érhető el.
Példák
Az alábbi példa szerializál egy objektumot egy Stream objektummal. A példa létrehoz egy XmlSerializerNamespaces névteret is, és két névteret ad hozzá az objektumhoz. A szerializált objektumot meghatározó osztály attribútumokkal XmlElementAttribute is rendelkezik az egyes elemek névterének megadásához.
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
Megjegyzések
A Serialize metódus meghívásakor az objektum nyilvános mezői és olvasási/írási tulajdonságai XML-fájllá alakulnak. A metódusok, indexelők, privát mezők és írásvédett tulajdonságok nincsenek szerializálva.
A paraméter használatával stream megadhat egy objektumot, amely az absztrakt Stream osztályból származik, amely streamekbe való írásra lett tervezve. Az osztályból Stream származó osztályok a következők:
Note
A XmlSerializer következő nem szerializálható: tömbök ArrayList és tömbök List<T>.
Lásd még
- XmlAttributes
- Deserialize(Stream)
- Az XML-szerializálás bemutatása
- Útmutató: Alternatív elemnév megadása XML-adatfolyamhoz
- XML-szerializálás szabályozása attribútumokkal
- Példák XML-szerializálásra
- XML-sémadefiníciós eszköz (Xsd.exe)