Son Haberler
Anasayfa / Yazılım / C# / Serileştirme (Serialization) ve Ters Serileştirme (Deserialization)

Serileştirme (Serialization) ve Ters Serileştirme (Deserialization)

Serilization (Serileştirme) , .NET üzerinde üzerinde işlem yaptığımız bir nesnenin, bir sınıfın saklanmak istenilen ya da gönderilmek istenilen formata dönüştürülmesi işlemidir. Böylelikle bu nesneyi kalıcı veya geçici olarak saklayabiliriz. Yani nesnemizi fiziksel olarak harddiskimize bir dosyaya yazabilir ya da bir networke transfer edebilir ya da web servisleri ile gönderebiliriz. İşte bu işlemler için nesnelerimizi, datalarımızı serilize etmemiz gerekir. Böylelikle verilerimiz küçülecek ve aynı zamanda daha performanslı hale gelecektir.

Deserilization (ters serileştirme) ise serilizasyon uygulanmaış olan nesne, datanın tekrar okunabilir hale getirilmesidir.

Serileştirme işlemini uygulayabilmek için System.Runtime.Serialization namespace kullanılır, buradan serilizasyon sınıflarına erişebilir ve araçları kullanabiliriz, böylelikle nesnelerimizi, datalarımızı istediğimiz formatta saklayabiliriz.

Bir nesneyi serilize edebildiğimiz gibi bir sınıfıda serilize edebiliriz. Bunun için sınıfın [Serializable] özniteliğini uygulamamız gerekir.

Üç tür serileştirme işlemi var :

? BinarySerialization : İkili serilizasyon ? Eğer serilize edilen nesne ? data yine .NET Framework ile yazılmış bir uygulama tarafından deserilize edilecek ise kullanılır, eğer bu durumda ise öncelikle tercih edilmesi gerekir, çünkü bu durumda en performanslı serilize işlemi binary serialization olacaktır.

? SOAP Serialization (Simple Object Access Protocol) : Eğer serilize edilen nesne ? data .NET ortamında değilde bir başka örneğin JAVA, DELPHI gibi bir ortamda okunması gerekiyor ise tercih edilecek yöntemdir. SOAP?da aslında bir nevi XML gibidir, kendine özgü bir yapısı vardır.

? XML (Extensible Markup Language) : SOAP gibidir, SOAP?ta ihtiyaç duyduğumuz durumlarda kullandığımız gibi kullanabiliriz, tek farkı kendimize özel şekilde işlem yapabiliriz.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir