XmlSerializer.Serialize Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Bir nesneyi XML belgesi olarak serileştirir.
Aşırı Yüklemeler
| Name | Description |
|---|---|
| Serialize(XmlWriter, Object) |
Belirtilen serileştirir ve xml Object belgesini belirtilen XmlWriterkullanarak bir dosyaya yazar. |
| Serialize(XmlWriter, Object, XmlSerializerNamespaces, String, String) |
Belirtileni serileştirir ve belirtilen Object , XML ad alanlarını ve kodlamayı kullanarak XML belgesini bir dosyaya XmlWriteryazar. |
| Serialize(XmlWriter, Object, XmlSerializerNamespaces, String) |
Belirtilen nesneyi serileştirir ve xml belgesini belirtilen XmlWriter kullanarak bir dosyaya yazar ve belirtilen ad alanlarına ve kodlama stiline başvurur. |
| Serialize(XmlWriter, Object, XmlSerializerNamespaces) |
Belirtileni serileştirir ve belirtilen ObjectXmlWriter ad alanlarını kullanarak XML belgesini bir dosyaya yazar ve belirtilen ad alanlarına başvurur. |
| Serialize(TextWriter, Object, XmlSerializerNamespaces) |
Belirtileni serileştirir ve belirtilen ObjectTextWriter ad alanlarını kullanarak XML belgesini bir dosyaya yazar ve belirtilen ad alanlarına başvurur. |
| Serialize(Object, XmlSerializationWriter) |
Belirtilen serileştirir ve xml Object belgesini belirtilen XmlSerializationWriterkullanarak bir dosyaya yazar. |
| Serialize(TextWriter, Object) |
Belirtilen serileştirir ve xml Object belgesini belirtilen TextWriterkullanarak bir dosyaya yazar. |
| Serialize(Stream, Object) |
Belirtilen serileştirir ve xml Object belgesini belirtilen Streamkullanarak bir dosyaya yazar. |
| Serialize(Stream, Object, XmlSerializerNamespaces) |
Belirtileni serileştirir ve belirtilen Object ad alanlarına başvuran belirtilen Stream öğesini kullanarak XML belgesini bir dosyaya yazar. |
Serialize(XmlWriter, Object)
- Kaynak:
- XmlSerializer.cs
- Kaynak:
- XmlSerializer.cs
- Kaynak:
- XmlSerializer.cs
- Kaynak:
- XmlSerializer.cs
- Kaynak:
- 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)
Parametreler
- Öznitelikler
Özel durumlar
Serileştirme sırasında bir hata oluştu. Özgün özel durum özelliği kullanılarak InnerException kullanılabilir.
Örnekler
Aşağıdaki örnek kullanarak bir nesneyi XmlWriterseri hale getirmektedir.
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>
Açıklamalar
yöntemi, Serialize bir nesnenin ortak alanlarını ve okuma/yazma özelliklerini XML'ye dönüştürür. Yöntemleri, dizin oluşturucuları, özel alanları veya salt okunur özellikleri dönüştürmez.
parametresinde xmlWriter soyut XmlWriter sınıftan türetilen bir nesne belirtin. , XmlTextWriter 'den XmlWritertüretilir.
Note
, XmlSerializer aşağıdakileri serileştiremez: dizileri ArrayList ve dizileri List<T>.
Ayrıca bkz.
- XmlAttributes
- Deserialize(Stream)
- XML Serileştirmeye Giriş
- Nasıl yapılır: XML Akışı için Alternatif Öğe Adı Belirtme
- Öznitelikleri Kullanarak XML Serileştirmesini Denetleme
- XML Serileştirme Örnekleri
- XML Şema Tanımı Aracı (XSD.exe)
Şunlara uygulanır
Serialize(XmlWriter, Object, XmlSerializerNamespaces, String, String)
- Kaynak:
- XmlSerializer.cs
- Kaynak:
- XmlSerializer.cs
- Kaynak:
- XmlSerializer.cs
- Kaynak:
- XmlSerializer.cs
- Kaynak:
- 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)
Parametreler
- o
- Object
Serileştirecek nesne.
- namespaces
- XmlSerializerNamespaces
Kullanılacak ad alanlarını ve ön ekleri içeren bir örneği XmlSerializerNamespaces .
- encodingStyle
- String
Belgede kullanılan kodlama.
- id
- String
SOAP ile kodlanmış iletiler için, kimlik öznitelikleri oluşturmak için kullanılan temel.
- Öznitelikler
Açıklamalar
id parametresi, SOAP kimlikleri oluşturmak için kullanılan temel dizeyi sağlar. Varsayılan olarak bunlar "id1", "id2" vb. şeklindedir. Ancak parametresi "myBase" olarak ayarlanırsa, oluşturulan değerler "myBaseid1", "myBaseid2" vb. olur. Bu işlev, SOAP iletisinin tamamı boyunca benzersiz kimlik değerleri oluşturmak için kullanılır.
Şunlara uygulanır
Serialize(XmlWriter, Object, XmlSerializerNamespaces, String)
- Kaynak:
- XmlSerializer.cs
- Kaynak:
- XmlSerializer.cs
- Kaynak:
- XmlSerializer.cs
- Kaynak:
- XmlSerializer.cs
- Kaynak:
- XmlSerializer.cs
Belirtilen nesneyi serileştirir ve xml belgesini belirtilen XmlWriter kullanarak bir dosyaya yazar ve belirtilen ad alanlarına ve kodlama stiline başvurur.
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)
Parametreler
- o
- Object
Serileştirecek nesne.
- namespaces
- XmlSerializerNamespaces
XmlSerializerNamespaces Nesnesi tarafından başvuruda bulunan.
- encodingStyle
- String
Serileştirilmiş XML'nin kodlama stili.
- Öznitelikler
Özel durumlar
Serileştirme sırasında bir hata oluştu. Özgün özel durum özelliği kullanılarak InnerException kullanılabilir.
Açıklamalar
Serialize Yöntemi çağrıldığında, bir nesnenin ortak alanları ve okuma/yazma özellikleri XML'ye dönüştürülür. Yöntemler, dizin oluşturucular, özel alanlar ve salt okunur özellikler serileştirilmemiştir.
xmlWriter XML belgeleri yazmak için tasarlanmış soyut XmlWriter sınıftan türetilen bir nesne belirtmek için parametresini kullanın. , XmlTextWriter 'den XmlWritertüretilir.
parametresini encodingStyle "http://schemas.xmlsoap.org/soap/encoding/" SOAP sürüm 1.1 kodlaması için; aksi takdirde " olarakhttp://www.w3.org/2001/12/soap-encoding" ayarlayın; SOAP sürüm 1.2 kodlaması için.
Note
, XmlSerializer aşağıdakileri serileştiremez: dizileri ArrayList ve dizileri List<T>.
Ayrıca bkz.
- XmlAttributes
- Deserialize(Stream)
- XML Serileştirmeye Giriş
- Nasıl yapılır: XML Akışı için Alternatif Öğe Adı Belirtme
- Öznitelikleri Kullanarak XML Serileştirmesini Denetleme
- XML Serileştirme Örnekleri
- XML Şema Tanımı Aracı (XSD.exe)
Şunlara uygulanır
Serialize(XmlWriter, Object, XmlSerializerNamespaces)
- Kaynak:
- XmlSerializer.cs
- Kaynak:
- XmlSerializer.cs
- Kaynak:
- XmlSerializer.cs
- Kaynak:
- XmlSerializer.cs
- Kaynak:
- 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)
Parametreler
- namespaces
- XmlSerializerNamespaces
XmlSerializerNamespaces Nesnesi tarafından başvuruda bulunan.
- Öznitelikler
Özel durumlar
Serileştirme sırasında bir hata oluştu. Özgün özel durum özelliği kullanılarak InnerException kullanılabilir.
Örnekler
Aşağıdaki örnek, ile XmlWriterbir nesneyi serileştirir. Örnek ayrıca bir XmlSerializerNamespaces oluşturur ve nesnesine iki ad alanı ekler. Sınıfın XmlElementAttribute birkaç örneği, her öğe için ad alanını belirtmek üzere sınıf üyelerine uygulanır.
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>
Açıklamalar
Serialize Yöntemi çağrıldığında, bir nesnenin ortak alanları ve okuma/yazma özellikleri XML'ye dönüştürülür. Yöntemler, dizin oluşturucular, özel alanlar ve salt okunur özellikler serileştirilmemiştir.
xmlWriter XML belgeleri yazmak için tasarlanmış soyut XmlWriter sınıftan türetilen bir nesne belirtmek için parametresini kullanın. , XmlTextWriter 'den XmlWritertüretilir.
Note
, XmlSerializer aşağıdakileri serileştiremez: dizileri ArrayList ve dizileri List<T>.
Ayrıca bkz.
- XmlAttributes
- Deserialize(Stream)
- XML Serileştirmeye Giriş
- Nasıl yapılır: XML Akışı için Alternatif Öğe Adı Belirtme
- Öznitelikleri Kullanarak XML Serileştirmesini Denetleme
- XML Serileştirme Örnekleri
- XML Şema Tanımı Aracı (XSD.exe)
Şunlara uygulanır
Serialize(TextWriter, Object, XmlSerializerNamespaces)
- Kaynak:
- XmlSerializer.cs
- Kaynak:
- XmlSerializer.cs
- Kaynak:
- XmlSerializer.cs
- Kaynak:
- XmlSerializer.cs
- Kaynak:
- XmlSerializer.cs
Belirtileni serileştirir ve belirtilen ObjectTextWriter ad alanlarını kullanarak XML belgesini bir dosyaya yazar ve belirtilen ad alanlarına başvurur.
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)
Parametreler
- textWriter
- TextWriter
TextWriter XML belgesini yazmak için kullanılır.
- namespaces
- XmlSerializerNamespaces
Oluşturulan XmlSerializerNamespaces XML belgesi için ad alanlarını içeren.
- Öznitelikler
Özel durumlar
Serileştirme sırasında bir hata oluştu. Özgün özel durum özelliği kullanılarak InnerException kullanılabilir.
Örnekler
Aşağıdaki örnek, ile TextWriterbir nesneyi serileştirir. Örnek ayrıca bir XmlSerializerNamespaces nesne oluşturur ve nesneye iki ad alanı ekler. Serileştirilmiş nesneyi tanımlayan sınıf, her öğenin ad alanını belirtmek için özniteliklerle XmlElementAttribute de ilişkilendirilir.
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>
Açıklamalar
Serialize Yöntemi çağrıldığında ortak alanlar ve bir nesnenin okuma/yazma özellikleri XML'ye dönüştürülür. Yöntemler, dizin oluşturucular, özel alanlar ve salt okunur özellikler serileştirilmemiştir.
soyut textWriter sınıfından TextWriter türetilen bir nesne belirtmek için parametresini kullanın. Sınıfından türetilen TextWriter sınıflar şunlardır:
Note
, XmlSerializer aşağıdakileri serileştiremez: dizileri ArrayList ve dizileri List<T>.
Ayrıca bkz.
- XmlAttributes
- XML Serileştirmeye Giriş
- Nasıl yapılır: XML Akışı için Alternatif Öğe Adı Belirtme
- Öznitelikleri Kullanarak XML Serileştirmesini Denetleme
- XML Serileştirme Örnekleri
- XML Şema Tanımı Aracı (XSD.exe)
Şunlara uygulanır
Serialize(Object, XmlSerializationWriter)
- Kaynak:
- XmlSerializer.cs
- Kaynak:
- XmlSerializer.cs
- Kaynak:
- XmlSerializer.cs
- Kaynak:
- XmlSerializer.cs
- Kaynak:
- XmlSerializer.cs
Belirtilen serileştirir ve xml Object belgesini belirtilen XmlSerializationWriterkullanarak bir dosyaya yazar.
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)
Parametreler
- writer
- XmlSerializationWriter
XmlSerializationWriter XML belgesini yazmak için kullanılır.
Özel durumlar
Yöntemi alt sınıfta geçersiz kılınmadığında yöntemine erişmek için herhangi bir girişimde bulunulması.
Şunlara uygulanır
Serialize(TextWriter, Object)
- Kaynak:
- XmlSerializer.cs
- Kaynak:
- XmlSerializer.cs
- Kaynak:
- XmlSerializer.cs
- Kaynak:
- XmlSerializer.cs
- Kaynak:
- XmlSerializer.cs
Belirtilen serileştirir ve xml Object belgesini belirtilen TextWriterkullanarak bir dosyaya yazar.
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)
Parametreler
- textWriter
- TextWriter
TextWriter XML belgesini yazmak için kullanılır.
- Öznitelikler
Örnekler
Aşağıdaki örnek kullanarak bir nesneyi TextWriterseri hale getirmektedir.
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>
Açıklamalar
yöntemi, Serialize bir nesnenin ortak alanlarını ve okuma/yazma özelliklerini XML'ye dönüştürür. Yöntemleri, dizin oluşturucuları, özel alanları veya salt okunur özellikleri dönüştürmez.
parametresinde textWriter soyut TextWriter sınıftan türetilen bir nesne belirtin. Türetilen TextWriter sınıflar şunlardır:
Note
, XmlSerializer aşağıdakileri serileştiremez: dizileri ArrayList ve dizileri List<T>.
Ayrıca bkz.
- XmlAttributes
- XML Serileştirmeye Giriş
- Nasıl yapılır: XML Akışı için Alternatif Öğe Adı Belirtme
- Öznitelikleri Kullanarak XML Serileştirmesini Denetleme
- XML Serileştirme Örnekleri
- XML Şema Tanımı Aracı (XSD.exe)
Şunlara uygulanır
Serialize(Stream, Object)
- Kaynak:
- XmlSerializer.cs
- Kaynak:
- XmlSerializer.cs
- Kaynak:
- XmlSerializer.cs
- Kaynak:
- XmlSerializer.cs
- Kaynak:
- 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)
Parametreler
- Öznitelikler
Özel durumlar
Serileştirme sırasında bir hata oluştu. Özgün özel durum özelliği kullanılarak InnerException kullanılabilir.
Örnekler
Aşağıdaki örnek, bir nesneyi kullanarak bir Stream nesneyi serileştirir.
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>
Açıklamalar
yöntemi, Serialize bir nesnenin ortak alanlarını ve okuma/yazma özelliklerini XML'ye dönüştürür. Yöntemleri, dizin oluşturucuları, özel alanları veya salt okunur özellikleri dönüştürmez.
parametresinde stream soyut Stream sınıftan türetilen bir nesne belirtin. Türetilen Stream sınıflar şunlardır:
Note
, XmlSerializer aşağıdakileri serileştiremez: dizileri ArrayList ve dizileri List<T>.
Ayrıca bkz.
- XmlAttributes
- Deserialize(Stream)
- XML Serileştirmeye Giriş
- Nasıl yapılır: XML Akışı için Alternatif Öğe Adı Belirtme
- Öznitelikleri Kullanarak XML Serileştirmesini Denetleme
- XML Serileştirme Örnekleri
- XML Şema Tanımı Aracı (XSD.exe)
Şunlara uygulanır
Serialize(Stream, Object, XmlSerializerNamespaces)
- Kaynak:
- XmlSerializer.cs
- Kaynak:
- XmlSerializer.cs
- Kaynak:
- XmlSerializer.cs
- Kaynak:
- XmlSerializer.cs
- Kaynak:
- 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)
Parametreler
- namespaces
- XmlSerializerNamespaces
XmlSerializerNamespaces Nesnesi tarafından başvuruda bulunan.
- Öznitelikler
Özel durumlar
Serileştirme sırasında bir hata oluştu. Özgün özel durum özelliği kullanılarak InnerException kullanılabilir.
Örnekler
Aşağıdaki örnek, nesne içeren bir Stream nesneyi seri hale getirmektedir. Örnek ayrıca bir XmlSerializerNamespaces oluşturur ve nesnesine iki ad alanı ekler. Serileştirilmiş nesneyi tanımlayan sınıf, her öğenin ad alanını belirtmek için özniteliklerle XmlElementAttribute de ilişkilendirilir.
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
Açıklamalar
Serialize Yöntemi çağrıldığında, bir nesnenin ortak alanları ve okuma/yazma özellikleri XML'ye dönüştürülür. Yöntemler, dizin oluşturucular, özel alanlar ve salt okunur özellikler serileştirilmemiştir.
özet sınıfından stream türetilen Stream ve akışlara yazmak üzere tasarlanmış bir nesne belirtmek için parametresini kullanın. sınıfından türetilen sınıflar Stream şunlardır:
Note
, XmlSerializer aşağıdakileri serileştiremez: dizileri ArrayList ve dizileri List<T>.
Ayrıca bkz.
- XmlAttributes
- Deserialize(Stream)
- XML Serileştirmeye Giriş
- Nasıl yapılır: XML Akışı için Alternatif Öğe Adı Belirtme
- Öznitelikleri Kullanarak XML Serileştirmesini Denetleme
- XML Serileştirme Örnekleri
- XML Şema Tanımı Aracı (XSD.exe)