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:
Visual C# içinde yeni bir Konsol Uygulaması projesi oluşturun.
Proje menüsünde Sınıf Ekle'yi seçerek projeye yeni bir sınıf ekleyin.
Yeni Öğe Ekle iletişim kutusunda, sınıfın adını clsPerson olarak değiştirin.
Ekle'yi seçin. Yeni bir sınıf oluşturulur.
Public class
clsPerson
deyiminden sonra aşağıdaki kodu ekleyin.public string FirstName; public string MI; public string LastName;
Visual Studio'da Program.cs için kod penceresine geçin.
yönteminde
void Main
sınıfının bir örneğiniclsPerson
bildirin ve oluşturun:clsPerson p = new clsPerson();
Nesnenin
clsPerson
özelliklerini ayarlayın:p.FirstName = "Jeff"; p.MI = "A"; p.LastName = "Price";
Ad
Xml.Serialization
alanı, birXmlSerializer
nesneyi XML'ye seri hale getiren bir sınıf içerir. örneğiniXmlSerializer
oluş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());
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ı birTextWriter
,Stream
veyaXMLWriter
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.