XML Serialization Püf Noktaları

Daha önceden yazdığım XML Serialization yazısının devamı olarak düşünebileceğiniz bir yazıyla sizlerleyim. Bu yazıda daha önceden yaptığımızın aksine biraz daha farklı olarak oluşturduğumuz XML formatını nasıl değiştireceğimize bakacağız.

Öncelikle bir önceki yazıda kullandığımız Person sınıfını tekrar hatırlayalım.

İlk olarak Person sınıfına departman bilgisini ekleyelim. Departman bilgisini Section sınıfını ile aşağıdaki gibi tanımlayalım.

Person sınıfına departman bilgisini şu şekilde ekleyelim.

Bu değişiklikten sonra XML çıktımız aşağıdaki gibi oluyor.

Buraya kadar bir sıkıntımız yok XMLSerializer‘ ımızın kafasını karıştırabilecek bir şeyler yapmadık. Hadi biraz bunları yapalım, aşağıdaki örneği inceleyelim ve XML Serialization da kullanılan farklı Attribute’ ları görmeye çalışalım.

Bu şekilde çalıştırdığımız da çıktımız aşağıdaki gibi oluyor.

Hemen hızlıca karşılaştırmalarımızı yapalım. XmlIgnore eklediğimiz alanların gelmediğini göreceksiniz. Bir özelliğin veya alanın saklanması için kullanılıyor. XmlAttribute kullanılan yerlerdeki bilgilerin XML noduna attribute olarak geldiğini XmlElement kullanılan yerlerin daha önceki örneklerimizde olduğu gibi XML nodları arasında olduğunu göreceksiniz. Nod isimlerini nasıl değiştirdiğimizi fark ettiniz mi? Farkketmediyseniz tekrar bakın, hemen göreceksiniz. 😉

XmlText kullandığımız departman nodunu fark ettiniz mi peki? Departman adını nodların arasına yazdırdık ve departman adı ile ilgili bir nod bilgisi bulunmuyor. Bunu XmlText ile sağlayabildik.

En son dikkat edeceğimiz nokta ise XmlRoot ve XmlType. Bir XML dosyasında sadece bir tane kök nod (root node) olabileceğinden dolayı obje hiyerarşimize uygun olarak Person sınıfına ekliyoruz (departman sınıfına da XmlRoot olarak ekleme yaparsanız hata almazsınız). Diğer sınıfımıza da XmlType attribute’ unu ekliyoruz ve XMLSerializer‘ ımıza Section sınıfını Departman adında bir tip olarak kullanabileceğini belirtiyoruz.

Bir şey daha ekliyelim ve bu yazımızı da tamamlayalım. Sınıflarımızı biraz daha güncelleyelim ve aşağıdaki hale getirelim.

Değiştirdiğimiz tek şey personelin durumunu enumeration’ a taşımak oldu ve bu şekilde çalıştırdığımız zaman aşağıdaki gibi bir çıktı alıyoruz.

Bu yazımda size XML Serialization hakkında biraz daha fazla bilgi vermeye çalıştım. Bir sonraki yazıda sizlere XML Serialization yaparken kullanabileceğiniz bazı kısa yolları göstermeye çalışacağım. O zamana kadar siz bu yazıyı incelemeye başlayın ve farklı alternatifleri mutlaka deneyin. Serileştirmenin ne kadar kolay ve ne kadar zevkli olduğunu göreceksiniz. 😉

This article has 1 comments

  1. Pingback: XML Serialization Kısayolları | Fatih Tatoğlu

Yorumlayın