Örnekle C#'ta Serileştirme ve Seriden Çıkarma
C#'ta Serileştirme ve Seriden Çıkarma
Serileştirme ve seri durumdan çıkarma kavramı, nesnelere ait verilerin bir uygulamadan diğerine gönderilmesi gerektiğinde kullanılır. Serileştirme, uygulama verilerini bir dosyaya aktarmak için kullanılır. Hedef uygulama daha sonra, daha sonra kullanılmak üzere uygulamadan veri çıkarmak için seri durumdan çıkarma işlemini kullanır.
Serileştirme, C# sınıfı nesnelerinin dosyalara yazıldığı veya serileştirildiği bir kavramdır. Diyelim ki Tutorial adında bir C# sınıfınız var. Ve sınıfın ID ve Öğreticiler adı olmak üzere 2 özelliği vardır.
Serileştirme, Tutorial sınıfının veri özelliklerini doğrudan bir dosyaya yazmak için kullanılabilir. Seri durumdan çıkarma, dosyadaki verileri okumak ve Eğitim nesnesini yeniden oluşturmak için kullanılır.
C#'ta Bir Nesne Nasıl Serileştirilir?
Bunu nasıl başarabileceğimize dair bir örneğe bakalım.
Örneğimizde kodda aşağıdaki üst düzey adımları gerçekleştireceğiz.
- ID ve Name olmak üzere 2 özelliğe sahip Tutorial adında bir sınıf oluşturun.
- Daha sonra sınıftan bir nesne oluşturup ID özelliğine “1”, name özelliğine ise “.Net” değerini atayacağız.
- Daha sonra yukarıdaki nesneyi Örnek.txt adlı bir dosyaya serileştirmek için serileştirmeyi kullanacağız.
- Son olarak, nesneyi dosyadan seri durumdan çıkarmak ve değerleri Konsolda görüntülemek için seri durumdan çıkarma işlemini kullanacağız.
Konsol uygulamasının program.cs dosyasına aşağıdaki kodu girin.
) 1 Adım Sınıfı ekleyin.
İlk adım serileştirme için kullanılacak sınıfı eklemektir
Kod Açıklaması:-
- Serileştirilmesi gereken sınıfın [Serializable] özelliğine sahip olması gerekir. Bu C#'ta bir anahtar kelimedir. Bu anahtar kelime daha sonra Tutorial sınıfına eklenir. Bu niteliği belirtmezseniz sınıfı serileştirmeye çalıştığınızda hata alırsınız.
- Daha sonra serileştirilecek sınıfın tanımı yer almaktadır. Burada “Tutorial” adında bir sınıf tanımlıyoruz ve biri “ID”, diğeri “Name” olmak üzere 2 özellik sağlıyoruz.
) 2 Adım Nesneyi oluşturun.
Bu adımda öncelikle Tutorial sınıfının nesnesini oluşturacağız ve onu example.txt adlı dosyaya seri hale getireceğiz.
Kod Açıklaması:-
- Öncelikle Tutorial sınıfına ait bir nesne oluşturuyoruz. Daha sonra ID’ye “1”, name özelliğine ise “.net” değerini atadık.
- Daha sonra nesneyi serileştirmek veya ikili biçime dönüştürmek için kullanılan biçimlendirici sınıfını kullanırız. Serileştirmede dosyadaki veriler ikili formatta yapılır. Daha sonra bir dosya akışı nesnesi oluşturuyoruz. Dosya akışı nesnesi, yazma amacıyla Örnek.txt dosyasını açmak için kullanılır. FileMode.Create ve FileMode.Write anahtar kelimeleri, dosyanın yazma amacıyla açılması gerektiğini özellikle belirtmek için kullanılır.
- Son olarak ikili verileri dosyaya aktarmak için Serialize yöntemini kullanıyoruz. Daha sonra yazma işleminden bu yana akışı kapatıyoruz operasyon tamamlandı.
) 3 Adım Seri durumdan çıkarma özelliğini kullanın.
Son olarak verinin dosyada mevcut olduğundan emin olmak için, nesneyi dosyadan seri durumdan çıkarmak için seri durumdan çıkarma yöntemini kullanırız.
using System; using System.IO; using System.Linq; using System.Runtime.Serialization; using System.Runtime.Serialization.Formatters.Binary; using System.Text; using System.Threading.Tasks; namespace DemoApplication { [Serializable] class Tutorial { public int ID; public String Name; static void Main(string[] args) { Tutorial obj = new Tutorial(); obj.ID = 1; obj.Name = ".Net"; IFormatter formatter = new BinaryFormatter(); Stream stream = new FileStream(@"E:\ExampleNew.txt",FileMode.Create,FileAccess.Write); formatter.Serialize(stream, obj); stream.Close(); stream = new FileStream(@"E:\ExampleNew.txt",FileMode.Open,FileAccess.Read); Tutorial objnew = (Tutorial)formatter.Deserialize(stream); Console.WriteLine(objnew.ID); Console.WriteLine(objnew.Name); Console.ReadKey(); } } }
Kod Açıklaması:-
- Nesneyi yaratıyoruz”dereÖrnek.txt dosyasını salt okuma modunda açmak için.
- Daha sonra, Sample.txt dosyasında saklanan nesnenin seri durumdan çıkarılması için kullanılan biçimlendirici sınıfını kullanırız. Döndürülen nesne, objnew nesnesine ayarlanır.
- Son olarak “ID” ve “name” özelliklerini kullanarak “objnew” nesnesinin özelliklerini konsola gösteriyoruz.
Yukarıdaki kod ayarlandığında ve proje kullanılarak çalıştırıldığında Visual Studio, aşağıdaki çıktıyı alacaksınız.
Çıktı:-
Yukarıdaki çıktıdan, dosyadaki değerlerin düzgün bir şekilde seri durumdan çıkarıldığını ve konsolda görüntülendiğini görebilirsiniz.
ÖZET
Serileştirme, sınıf nesnelerini dosyalara yazmak için kullanılır.
Serileştirmeden çıkarma, dosyadaki nesneleri kurtarmak için kullanılır.