Bir nesneyi XML'ye seri hale getirmek için Visual C# kullanma

Bu makalede, Visual C# kullanarak bir nesneyi Genişletilebilir Biçimlendirme Dili'ne (XML) seri hale getirme hakkında bir yöntem sağlanır.

Özgün ürün sürümü: Visual Studio
Özgün KB numarası: 815813

Özet

Bu makalede açıklanan yöntem, bir nesnenin durumunu kalıcı hale döndürmek için yararlıdır. yöntemi, XML'i yeniden yeni bir nesneye seri hale getirerek bir nesneyi kopyalamada da yararlıdır.

Bu makale, aşağıdaki Microsoft .NET Framework Sınıf Kitaplığı ad alanlarını ifade eder:

  • System.Xml
  • System.Xml.Serialization

Gereksinimler

Bu makalede, aşağıdaki konulara aşina olduğunuz varsayılır:

  • Visual Studio
  • XML hakkında genel bilgi
  • Visual C hakkında genel bilgi#

XML serileştirme

Serileştirme, bir nesnenin durumunu alıp bir şekilde kalıcı hale getirme işlemidir. .NET Framework, herhangi bir nesneyi XML'ye seri hale getirebilen güçlü nesneler içerir. Ad System.Xml.Serialization alanı bu özelliği sağlar.

Bir nesne oluşturan ve durumunu XML olarak seri hale getiren bir konsol uygulaması oluşturmak için şu adımları izleyin:

  1. Visual C# içinde yeni bir Konsol Uygulaması projesi oluşturun.

  2. Proje menüsünde Sınıf Ekle'yi seçerek projeye yeni bir sınıf ekleyin.

  3. Yeni Öğe Ekle iletişim kutusunda, sınıfın adını clsPerson olarak değiştirin.

  4. Ekle'yi seçin. Yeni bir sınıf oluşturulur.

  5. Public class clsPerson deyiminden sonra aşağıdaki kodu ekleyin.

    public string FirstName;
    public string MI;
    public string LastName;
    
  6. Visual Studio'da Program.cs için kod penceresine geçin.

  7. yönteminde void Main sınıfının bir örneğini clsPerson bildirin ve oluşturun:

    clsPerson p = new clsPerson();
    
  8. Nesnenin clsPerson özelliklerini ayarlayın:

    p.FirstName = "Jeff";
    p.MI = "A";
    p.LastName = "Price";
    
  9. Ad Xml.Serialization alanı, bir XmlSerializer nesneyi XML'ye seri hale getiren bir sınıf içerir. örneğini XmlSerializeroluşturduğunuzda, seri hale getirmek istediğiniz sınıfın türünü oluşturucusuna geçirirsiniz:

    System.Xml.Serialization.XmlSerializer x = new System.Xml.Serialization.XmlSerializer(p.GetType());
    
  10. Serialize yöntemi, bir nesneyi XML'ye seri hale getirmek için kullanılır. Seri hale getirme aşırı yüklenmiştir ve çıktıyı bir TextWriter, Streamveya XMLWriter nesnesine gönderebilir. Bu örnekte, çıkışı konsola gönderirsiniz:

    x.Serialize(Console.Out,p);
    Console.WriteLine();
    Console.ReadLine();
    

Tam kod listesi

using System;

public class clsPerson
{
    public  string FirstName;
    public  string MI;
    public  string LastName;
}

class class1
{
    static void Main(string[] args)
    {
        clsPerson p=new clsPerson();
        p.FirstName = "Jeff";
        p.MI = "A";
        p.LastName = "Price";
        System.Xml.Serialization.XmlSerializer x = new System.Xml.Serialization.XmlSerializer(p.GetType());
        x.Serialize(Console.Out, p);
        Console.WriteLine();
        Console.ReadLine();
    }
}

Doğrulama

Projenizin çalıştığını doğrulamak için CTRL+F5 tuşlarına basarak projeyi çalıştırın. Bir clsPerson nesne oluşturulur ve girdiğiniz değerlerle doldurulur. Bu durum XML olarak serileştirilir. Konsol penceresinde aşağıdaki kod gösterilir:

<?xml version="1.0" encoding="IBM437"?>
<clsPerson xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <FirstName>Jeff</FirstName>
    <MI>A</MI>
    <LastName>Price</LastName>
</clsPerson>

Sorun giderme

Xml.Serialization.XmlSerializer Nesnesi yalnızca sığ serileştirme gerçekleştirir. Bir nesnenin veya alt nesnelerin özel değişkenlerini de seri hale getirmek istiyorsanız, derin serileştirme kullanmanız gerekir.