Makale numarası: 316730 - Son Gözden Geçirme: 18 Mayıs 2007 Cuma - Gözden geçirme: 2.4

NASıL YAPıLıR: Seri hale getirilmeye ve Visual Basic. NET'te XML serisi kaldırılamadı.

Sistem İpucuBu makale, kullandığınızdan farklı bir işletim sistemine yöneliktir. Sizinle ilgili olmayabilecek makale içeriği devre dışı bırakıldı.

Bu Sayfada

Hepsini aç | Hepsini kapa

Özet

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.
  1. Visual Basic. NET'te yeni bir konsol uygulaması oluşturmak için şu adımları izleyin:
    1. Visual Studio .NET'i başlatın.
    2. Dosya menüsünde Yeni ' nin üzerine gelin ve sonra Project ' i tıklatın.
    3. Yeni proje) iletişim kutusunda, Project Types altında Visual Basic Projects ' ı tıklatın ve şablonları altında Console Application ' ı tıklatın.
  2. Proje için yeni sınıf eklemek için şu adımları izleyin:
    1. Proje) menüsünde Add Class ' ı tıklatın.
    2. Yeni Öğe Ekle iletişim kutusundaki clsProduct.vbadı metin kutusuna yazın ve sonra ' ı tıklatın.
  3. 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).
  4. 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
    					
  5. 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
    					
  6. 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()
    					
  7. Hata Ayıkla) menüsünde, uygulamayı çalıştırmak için Başlat ' ı tıklatın.
  8. 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>
    						
  9. 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
    					
  10. Özellik yordam için Miktar bulun ve sonra Tamsayı olarak ortak özellik qty() ifade hemen önce aşağıdaki kodu ekleyin:
    <XmlElementAttribute(ElementName:="Quantity")> _
    					
  11. Hata Ayıkla) menüsünde, uygulamayı çalıştırmak için Başlat ' ı tıklatın.
  12. 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.
  13. 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
				

Referanslar

Daha fazla bilgi için aşağıdaki Microsoft Web sitelerine bakın:
XML Serialization örnekleri
http://msdn.microsoft.com/en-us/library/aa719523.aspx (http://msdn.microsoft.com/en-us/library/aa719523.aspx)

XmlSerializer üyeler
http://msdn2.microsoft.com/en-us/library/system.xml.serialization.xmlserializer_members(vs.71).aspx (http://msdn2.microsoft.com/en-us/library/system.xml.serialization.xmlserializer_members(vs.71).aspx)

System.Xml.Serialization ad alanı
http://msdn.microsoft.com/en-us/library/system.xml.serialization.aspx (http://msdn.microsoft.com/en-us/library/system.xml.serialization.aspx)

ADO.NET XML özellikleri
http://msdn.microsoft.com/en-us/library/ms810298.aspx (http://msdn.microsoft.com/en-us/library/ms810298.aspx)

Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • Microsoft .NET Framework 1.1
  • Microsoft .NET Framework 1.0
Anahtar Kelimeler: 
kbmt kbhowtomaster KB316730 KbMttr
Otomatik TercümeOtomatik Tercüme
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:316730  (http://support.microsoft.com/kb/316730/en-us/ )