XML Serialization Kısayolları

Bir önceki yazımda söz verdiğim kısa yolları sizlerle paylaşmak istiyorum. Daha önceki yazılarımızda yazdığımız çoğu şey bir nesnenin nasıl XML’ e dönüştürülebileceğiyle ilgiliydi. Bu sefer gerçek dünya örneklerinden yola çıkarak bunun tersini yani XML verilerini nasıl sınıflara daha hızlı dönüştürebileceğimize bakacağız. Göstereceğim iki yöntem için aşağıdaki XML dosyasını kullanacağız.

İlk kısayolumuz Microsoft SDK içersinde yer alan xsd.exe uygulaması. xsd uygulaması bize verimize uygun olarak bir şablon (XSD – XML Schema) oluşturuyor ve bunu kullanarak bize bir sınıf oluşturuyor. Eğer bilgisayarınızda Microsoft SDK yüklü ise C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin dizini altında xsd.exe uygulamasını bulabileceksiniz.

Yukarıdaki komutu çalıştırdığımız zaman uygulama bize aşağıdaki xsd dosyasını oluşturacaktır. Oluşturulan bu dosya bizim verimiz üzerinden çıkartılan bir şablondur. Eğer serileştirme yapacağınız bir veriyi başkası kullanacak ise kullanacak kişilere aşağıdaki şemayı yollamanız yeterlidir.

Şimdi gelelim bizim yazdığımız sınıflar ile uygulamanın bizim için oluşturacağı sınıflar arasındaki farklara. Aşağıdaki komutları çalıştırdığımız zaman uygulama, Deserialization için kullanacağımız sınıfı bize verecektir.

Aşağıdaki sınıfı inceleyerek daha önceki yazımızda kullandığımız sınıf ile arasındaki farkları görebilirsiniz (otomatik olarak yazılmış yorum satırlarını daha rahat takip edilebilmesi için temizledim). Ek olarak bir şey daha ekliyim, uygulama bu bilgiyi bizim tanımladığımız xsd dosyasına göre oluşturdu. Yani sizin uygulamanızda serileştirilen bir dosyayı kullanacak kişiye xsd dosyanızı paylaşmanız yeterli olacaktır (tekrar etmekte fayda var).

Dikkat ederseniz bizim yazdığımız sınıflara bazı noktaları benziyor ama bazıları benzemiyor. Bu yüzden tam olarak sizin istediğiniz veya tasarladığınız şekilde kullanılmasını istiyorsanız xsd dosyasını kendiniz elle düzeltmeniz ya da tasarlamanız gerekiyor.

Peki, “Yukarıdaki işlemi yapmanın daha kolay yolu var mıdır?” noktasına geldiğimizde Microsoft bize bu çözümü Visual Studio 2012 ve daha yüksek versiyonlarında. Aşağıdaki görsel görebileceğiniz gibi Edit > Paste Special > Paste XML As Classes seçtiğinizde aşağıdaki kod parçasını sizin için oluşturacaktır.
VS2K12 Paste XML As Classes

Göreceğiniz gibi biraz daha temiz bir kod parçası oluşturmuş oluyor. Hangisini kullanacağınız size kalmış ama yukarıda da ara ara söylediğim gibi uygulama verilerden ve verilerin içerisindeki veri tiplerini kullandığından ilk tasarlandığınız sınıf arasında farklar olabilir. Bunu düzeltmek isterseniz xml şema dosyanızı elle güncellemeniz gerekiyor.

Bu yazıyla XML Serialization hakkında anlatacaklarımın sonuna geliyorum gibi gözükse de aslında bazı yazılarımın içerisinde yine ufak ufak çaktırmadan bazı örnekleri sizlerle paylaşıyor olacağım.

This article has 1 comments

  1. Pingback: XML Serialization - Kodları Sadeleştirmek | Fatih Tatoğlu

Yorumlayın