![]() |
|
|
#1 (permalink) | ||
|
Süper Mod
![]() ![]() ![]() Üyelik tarihi: Kas 2007
Nerden: ewden(:
Mesajlar: 5.997
Konular: 3048
Üye No: 11341
Ruh halim:
Rep Gücü : 482
Rep Puanı : 9142
Rep Seviyesi :
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Serialization; bir nesne içinde bulunan veri içeriğinin bit türünden formatlanarak depolama aygıtına kaydedilmesi işlemine denir. Kaydedilen bu verinin tekrar orijinal formatta bize döndürülmesi için yapılan çağırma işlemine de Deserialization denir
. .Net Framework serialization için üç metod sunmaktadır. · Binary Serialization · XML Serialization ve SOAP Serialization’dır. Xml serialization bir Windows uygulamasının hem Net ortamında hem de Windows ortamında çalışmasını sağladığı gibi tüm işletim sistemlerince kolayca ulaşılmasına da imkan sağlar.System.Xml.serialization ad uzayından erişilir. Xml serialization; bir nesnenin veri içeriğini bir serverden uzakta bulunan başka bir servera taşınmasına imkan sağlar. Veri içeriğini xml formatta tutar fakat içerik deserialize edildiği zaman orijinal formatta bize döner. Xml serializationın da yetersiz kaldığı durumlar vardır. Mesela private değişkenler, metodların serialization işlemini desteklemez. İşte xml’in yetersiz kaldığı durumlarda devreye SOAP girmektedir. SOAP (Simple Object Access Protocol) Dağıtık,tek merkezde olmayan uygulamaların kullanıldıkları yada farklı bir formlarda aynı dilde kullanılmasını sağlayarak bir standart oluşturmayı amaçlamaktadır. Ayrıca RPC (Remote Protocol Call) modelini kullarak web serverler arasında haberleşmeyi sağlar. SOAP’ı güçlü kılan xml üzerine kurulu olması ve http de yararlanmasıdır. SOAP Mesaj protokolü olarak XML, transfer protokolü olarak da HTTP yi kullanmaktadır. Ama güvenlik ayrıca ele alınması gereken bir konudur. Xml ve SOAP Serialization ilerde daha ayrıntılı olarak anlatılacaktır. Bu makalede Binary Serialization ve Deserializationı anlatmaya çalışacağım. Serialization işleşimini gerçekleştirmek için System.Runtime.Serialization isim uzayının sağladığı sınıf ve araçlarından yararlanırız.Binary serialization içinde System.Runtime.Serialization .Formatters.Binary isim uzayından ulaşılır. [Serializable()] kullanılarak class içeriği serialize edilir.ISerializable interfaceni implement ediyoruz. Yapılan implement ile kullanıcıyı SerializationInfo ve GetObjectData() kullanımına zorlamaktadır. Aşağıdaki GetObjectData() yerine başka bir isim verirseniz uygulama çalışmadığını göreceksiniz. Şimdi Binary Serialization ile ilgili bir örnek yapalım. “Personel” isimde bir class oluşturup, serialization işlemine başlayalım. using System; using System.IO; using System.Runtime.Serialization; using System.Runtime.Serialization.Formatters.Binary; namespace Serialization { [Serializable()]//Burada tüm classımızı serialize edelim. public class Personel : ISerializable//ISerializable interface’ni implement ediyoruz. { public int PersonelID; public string PersonelAd; //Varsıyalın Koşulumuz… public Personel() { PersonelID = 0; PersonelAd = null; } //Deserialization koşulu public Personel(SerializationInfo info, StreamingContext ctx) { // Info'dan değer alınır ve uygun özellik verilir PersonelID = (int)info.GetValue("Per_ID", typeof(int)); PersonelAd = (string)info.GetValue("PersonelAd", typeof(string)); } //Serialization fonksiyonu public void GetObjectData(SerializationInfo info, StreamingContext ctx) { //name-value ikilisi için herhangi bir isim kulanabilirsiniz. Eğer Cal_ID yazdıysanız diğeri "CalisanID"olmalı... //Serialization koşulu “Per_ID” içinde tutulacak… info.AddValue("Per_ID", PersonelID); info.AddValue("PersonelAd", PersonelAd); } static void Main(string[] args) { //Yeni bir Personel instance oluşturuyoruz. Personel cls = new Personel(); cls.PersonelID = 5; cls.PersonelAd = "Hüseyin"; } static void Main(string[] args) { //Yeni bir Calisan instance oluşturuyoruz. Personel cls = new Personel(); cls.PersonelID = 5; cls.PersonelAd = "Hüseyin"; //Serialization için asagidaki kodlari yaziyoruz.... //Bir dosya açmak ve binary format ile nesneyi dizi haline getirmek //Calisaninfo.doc.isminde bir dosya oluşturacağız. Stream stream = File.Open("CalisanInfo.doc", FileMode.Create); BinaryFormatter format = new BinaryFormatter(); Console.WriteLine("Serialization işlemini başlat. "); format.Serialize(stream, cls); stream.Close(); //Oluşturulan dosyaya My Documents\Visual Studio2005\ Projects\ Serialization\ Serialization\bin\Debug\Calisaninfo.doc içinde ulaşabilirsiniz. Dosyayı doc uzantılı oluşturdum ki içeriğine erişebilesiniz. //Deserialization işlemi için aşağıdaki kodlar kullanılır. cls = null; stream = File.Open("CalisanInfo.doc", FileMode.Open); format = new BinaryFormatter(); Console.WriteLine("Deserialization işlemine başla.!"); cls = (Personel)format.Deserialize(stream); stream.Close(); Console.WriteLine("CalisanID:{0}", cls.PersonelID.ToString()); Console.WriteLine("calisanismi:{0}", cls.PersonelAd); Console.Read(); } } } Binary Serialization işlemini gerçekleştirmiş bulunmaktayız....
__________________
BeLqide bu dünya başqa bir gezegenin cehennemidir..!!? SEN GİDİNCE YALNIZ KALACAĞIM.YALNIZLIKTAN KORKMUYORUM DA YA CANIM ELLERİNİ TUTMAK İSTERSE.. ![]() ![]() SiLemıyosaN KaRaLayacaksıN...GideRkeN Kaç Kere BaktıN ArkaNa? ![]() !..... Wayyy Beee!!! İçimizdeki Çocuk Da Gayrı Meşru Çıktı .....!
Mrs. Wampir€ |
||
|
|
|
![]() |
| Bu konunun kısa yolunu aşağıdaki sitelere ekleyebilirsiniz! |
| Konu Araçları | |
| Stil | |
|
|