Bu yazımızda C#’ta XmlSerializer sınıfını kullanarak serialization (sınıfı XML formatına dönüştürme) ve deserialization (XML formatındaki veriyi sınıfa dönüştürme) işlemlerini inceleyeceğiz. Bu sınıfı kullanabilmemiz için “System.Xml.Serialization” referansını eklememiz gerekiyor.
using System.Xml.Serialization;
Örnek kodlarımızla işe başlayalım.
Bir Sınıfı XML Formatına Dönüştürme
Şimdi örnek bir sınıf oluşturalım
private class Personel
{
public string Ad { get; set; }
public string Soyad { get; set; }
}Sınıfımızı türetip veriyi oluşturalım
Personel personel = new Personel(); personel.Ad = "Serdar"; personel.Soyad = "Kardan";
var serializer = new XmlSerializer(personel.GetType()); // serialization işlemi için XmlSerializer
using (var writer = new StreamWriter(@"D:\personel.xml")) // XML dosyamızı oluşturmak için StreamWriter nesnemizi türetiyoruz.
{
serializer.Serialize(writer, personel); // Yukarıda türetmiş olduğumuz XmlSerializer nesnesinin Serialize metodunu kullanarak sınıfımızı XML formatına dönüştürüyoruz ve dosyaya yazıyoruz.
}Oluşacak XML dosyasının içeriği aşağıdaki gibi olacaktır:
<Personel xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance mlns:xsd="http://www.w3.org/2001/XMLSchema"> <Ad>Serdar</Ad> <Soyad>Kardan</Soyad> </Personel>
XML Dosyasını Sınıfa Dönüştürme
var xml = new XmlSerializer(typeof(Personel));
Personel emptyPersonel = new Personel(); // Boş nesnemizi türetiyoruz
using (StreamReader sr = new StreamReader(@"D:\personel.xml")) // XML dosyamızı okuyacak olan sınıfımızı türetiyoruz
{
emptyPersonel = (Personel)xml.Deserialize(sr); // Boş nesnemize XML dosyasından okuduğumuz veriyi yazıyoruz
}Personel türündeki boş sınıfımıza XML verisini yazmış olduk.
Örnek proje dosyasını indirmek için lütfen tıklayınız.

