Bu makalede,
System.XmlSerialization.XmlSerializer sınıfı seri hale getirmek için ve bir Genişletilebilir Biçimlendirme Dili (XML) nesnedeki seriyi kaldırmak için nasıl kullanılacağı gösterilmektedir.
Gereksinimler
Aşağıdaki listede, gereksinim duyacağınız donanım, yazılım, ağ altyapısı ve hizmet paketleri önerilmektedir:
- Microsoft Visual Studio. NET'i
Bu makalede, aşağıdaki konularda bilgi sahibi olduğunuz varsayılmaktadır:
- Microsoft Visual Basic .NET
- XML
XML Serialization açıklaması
Seri hale getirme olarak, bir nesnenin durumu veri akışı depoladığınız işlemidir. Seri hale getirme durumu daha sonra almak için bir nesnenin durumu ısrar olanak sağlar. Seri hale getirme varolan nesneyi yeni bir nesne oluşturmak için clone sağlar.
System.Xml.Serialization ad XML'DE nesneleri seri hale getirmek için kullanabileceğiniz sınıflarını içerir.
Visual Basic .NET konsol uygulaması oluşturun
Bu bölümde, bir konsol uygulaması oluşturun:
- XML nesneye deserializes.
- XML seri hale getirme, bir metin dosyasına kaydeder.
- (Seri kaldırma) yeni bir nesne oluşturmak için XML metin dosyasında okur.
- Visual Basic. NET'te yeni bir konsol uygulaması oluşturmak için şu adımları izleyin:
- Visual Studio .NET'i başlatın.
- Dosya menüsünde Yeni ' nin üzerine gelin ve sonra Project ' i tıklatın.
- Yeni proje) iletişim kutusunda, Project Types altında Visual Basic Projects ' ı tıklatın ve şablonları altında Console Application ' ı tıklatın.
- Proje için yeni sınıf eklemek için şu adımları izleyin:
- Proje) menüsünde Add Class ' ı tıklatın.
- Yeni Öğe Ekle iletişim kutusundaki clsProduct.vbadı metin kutusuna yazın ve sonra Aç ' ı tıklatın.
- Kod penceresinde clsProduct.vb kodu aşağıdaki kodla değiştirin:
Public Class clsProduct
Private mstrName As String
Private mstrDescription As String
Private mintQty As Integer
Public Property Name() As String
Get
Name = mstrName
End Get
Set(ByVal Value As String)
mstrName = Value
End Set
End Property
Public Property Description() As String
Get
Description = mstrDescription
End Get
Set(ByVal Value As String)
mstrDescription = Value
End Set
End Property
Public Property Qty() As Integer
Get
Qty = mintQty
End Get
Set(ByVal Value As Integer)
mintQty = Value
End Set
End Property
End Class
bu kodu üç özelliklere sahip bir Ürün sınıfı oluşturur: ad, Açıklama ve Mkt. (miktar). - Module1.vb için kod penceresine geçin ve aşağıdaki kodu <a0>Kod</a0> penceresinin en üstüne ekleyin:
Imports System.IO
Imports System.Xml.Serialization
- Sub Main</a0> yordamında, oluşturmak ve clsProduct</a0> sınıfının bir örneği doldurmak için aşağıdaki kodu ekleyin:
'Set up product object.
Dim p As New clsProduct()
p.Name = "Widget"
p.Description = "Faster, better, cheaper"
p.Qty = 5
- XmlSerializer nesne, XML nesne seri hale getirilmeye ve nesnenin durumu, bir metin dosyasına kaydetmek için kullanın. Bunu yapmak için <a0></a0>, Sub Main yordamında End Sub ifade hemen önce aşağıdaki kodu ekleyin...:
'Serialize object to a text file.
Dim objStreamWriter As New StreamWriter("C:\Product.xml")
Dim x As New XmlSerializer(p.GetType)
x.Serialize(objStreamWriter, p)
objStreamWriter.Close()
- Hata Ayıkla) menüsünde, uygulamayı çalıştırmak için Başlat ' ı tıklatın.
- Product.xml dosyayı Not Defteri'nde veya Microsoft ınternet Explorer'ı açın. Bu dosyanın içeriğini aşağıdaki gibi görünmelidir:
<?xml version="1.0" encoding="utf-8"?>
<clsProduct xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Name>Widget</Name>
<Description>Faster, better, cheaper</Description>
<Qty>5</Qty>
</clsProduct>
- Xml.Serialization ad XmlSerializer sınıfı oluşturur, çıkış'ı özelleştirmenizi sağlar. Örneğin, clsProduct sınıfta, miktar alanı Mkt. kısaltılır XmlElementAttribute özniteliği, sınıf seri hale getirilmeye olduğunda, miktar alanı değiştirmek için kullanabilirsiniz.
ClsProduct.vb için kod penceresine geçin ve aşağıdaki kodu <a0>Kod</a0> penceresinin en üstüne ekleyin:
Imports System.Xml.Serialization
- Özellik yordam için Miktar bulun ve sonra Tamsayı olarak ortak özellik qty() ifade hemen önce aşağıdaki kodu ekleyin:
<XmlElementAttribute(ElementName:="Quantity")> _
- Hata Ayıkla) menüsünde, uygulamayı çalıştırmak için Başlat ' ı tıklatın.
- Product.xml dosyayı Not Defteri'nde veya ınternet Explorer'ı açın. Bu dosyanın içeriğini aşağıdaki biçimde görünür:
<?xml version="1.0" encoding="utf-8"?>
<clsProduct xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Name>Widget</Name>
<Description>Faster, better, cheaper</Description>
<Quantity>5</Quantity>
</clsProduct>
Mkt. öğesi, Miktar için değiştirilen dikkat edin. - Module1.vb için kod penceresine geçin ve sonra da End Sub ifade hemen önce <a1>Sub Main</a1> yordamına aşağıdaki kodu ekleyin:
'Deserialize text file to a new object.
Dim objStreamReader As New StreamReader("C:\Product.xml")
Dim p2 As New clsProduct()
p2 = x.Deserialize(objStreamReader)
objStreamReader.Close()
'Display property values of the new product object.
Console.WriteLine(p2.Name)
Console.WriteLine(p2.Description)
Console.WriteLine(CStr(p2.Qty))
Console.ReadLine()
Product.xml metin dosyası, p2 adlı yeni bir clsProduct nesnesi oluşturmak için bu kodu deserializes. Buna ek olarak, bu kod, konsol penceresinde p2 özellik değerlerini görüntüler.
It Works That doğrulayın.
Hata Ayıkla) menüsünde, uygulamayı çalıştırmak için
Başlat ' ı tıklatın. Özellik değerleri p2, konsol penceresinde notunun:
Widget
Faster, better, cheaper
5
Kod dökümü tamamlayın.
'Module1.vb
Imports System.Xml.Serialization
Imports System.IO
Module Module1
Sub Main()
'Set up product object.
Dim p As New clsProduct()
p.Name = "Widget"
p.Description = "Faster, better, cheaper"
p.Qty = 5
'Serialize object to a text file.
Dim objStreamWriter As New StreamWriter("C:\Product.xml")
Dim x As New XmlSerializer(p.GetType)
x.Serialize(objStreamWriter, p)
objStreamWriter.Close()
'Deserialize text file to a new object.
Dim objStreamReader As New StreamReader("C:\Product.xml")
Dim p2 As New clsProduct()
p2 = x.Deserialize(objStreamReader)
objStreamReader.Close()
'Display property values of the new product object.
Console.WriteLine(p2.Name)
Console.WriteLine(p2.Description)
Console.WriteLine(CStr(p2.Qty))
Console.ReadLine()
End Sub
End Module
'clsProduct.vb
Imports System.Xml.Serialization
Public Class clsProduct
Private mstrName As String
Private mstrDescription As String
Private mintQty As Integer
Public Property Name() As String
Get
Name = mstrName
End Get
Set(ByVal Value As String)
mstrName = Value
End Set
End Property
Public Property Description() As String
Get
Description = mstrDescription
End Get
Set(ByVal Value As String)
mstrDescription = Value
End Set
End Property
<XmlElementAttribute(ElementName:="Quantity")> _
Public Property Qty() As Integer
Get
Qty = mintQty
End Get
Set(ByVal Value As Integer)
mintQty = Value
End Set
End Property
End Class
Daha fazla bilgi için aşağıdaki Microsoft Web sitelerine bakın: