XmlSerializer ile Serialization ve Deserialization – C Sharp


Xml’in ne olduğunu, neden kullanıldığını vs bilgilere bu yazımda yer almayacaktır. Bunlar başka bir yazının konusudur…

Bu yazımda işimizi çok kolaylaştıran doğrudan DataSet(DataTable) ve oluşturduğumuz class’ı tip olarak alan Generic List’ten doğrudan nasıl XmlSerialization ve Deserialization yaptığımıza değineceğim.

Serialization

Öncelikle “Ürün” adında bir class oluşturuyorum:

    public class Urun
    {
        public string Marka { get; set; }
        public string Model { get; set; }
        public float Fiyati { get; set; }
        public string UretildigiUlke { get; set; }
    }

Urun tipinde bir generic list oluşturyorum:

    List<Urun> urunler = new List<Urun>();

Bu listeye yeni urun ekliyorum:

     urunler.Add(new Urun
     {
        Marka = "Microsoft",
        Model = "Xbox 360 Kinect",
        UretildigiUlke = "Çin"
      });
      urunler.Add(new Urun
      {
         Marka = "Microsoft",
         Model = "Arc Touch Mouse",
         UretildigiUlke = "Endonezya"
      });
      urunler.Add(new Urun
      {
         Marka = "Apple",
         Model = "Iphone 5",
         UretildigiUlke = "Çin"
      });
      urunler.Add(new Urun
      {
         Marka = "Apple",
         Model = "Ipad 2",
         UretildigiUlke = "Çin"
      });

Serialization işlemine başlıyorum:

      XmlSerializer xmlSeri = new XmlSerializer(typeof(List<Urun>));
      FileStream fileStream = new FileStream(string.Format("{0}\\{1}", Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "UrunBilgileri.xml"), FileMode.Create);
      xmlSeri.Serialize(fileStream, urunler);
      fileStream.Close();

İşte Sonuç:

Deserialization

Şimdi serialization yaptığımız bir xml’i nasıl olurda geri elde edebiliriz ona bakacağız.

Dikkat:

  • Deserialize işlemi sırasında XmlSerializer’ın Contructor’ına vereceğimiz type, Serilization yaptığımızda verdiğimiz type ile aynı olmadılır bu çok önemli yoksa işlem başarız olur.
    List<Urun> DeUrunler;
    XmlSerializer xmlDeserialization = new XmlSerializer(typeof(List<Urun>));
    FileStream fileStream = new FileStream(string.Format("{0}\\{1}", Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "UrunBilgileri.xml"), FileMode.Open);
    DeUrunler = (List<Urun>)xmlDeserialization.Deserialize(fileStream);
    foreach (Urun urun in DeUrunler)
    {
          //işlem yapabilirsiniz
    }

Burada kodumuza baktığımız zaman ürünlerin artık geldiğini göreceksiniz.

İndirme

Ben uygulamayı web applicationda yaptım. Windows Forms Application da farketmez. Bu serialization oldukça basit olarak anlattım. Video çekmeyi düşünüyorum. Eğer video çekersem ayrıntılı olarak anlatacağım

İndirmek için tıklayın.

 

İyi çalışmalar

Herhangi bir sorunuz olursa benimle iletişime geçebilirsiniz. 

, ,

  1. Leave a comment

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s