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.