damn you order sixty-six!

Ana sayfa » BinaryFormatter

Etiketler: BinaryFormatter Serialise
Kategoriler: .Net/C#

Uygulama serialise olabilen her nesneyi bir dosya olarak kaydedebilmeye ve kaydedilen bu dosyayı tekrar geri çağırabilmeye olanak tanıyor.

Peki ne işe yarayacak bu. Ben genellikle bu uygulamayı programlarımdaki basit konfigürasyonları yapmak, saklamak ve geri çağırmak için kullanıyorum. Sanırım aşağıdaki örnek kod size yardımcı olacaktır.

Aşağıdaki gibi bi sınıfımız olsun

using System;
using System.Collections.Generic;
using System.Text;

namespace SampleApp
{
  [Serializable]
  public class MySettings
  {
  public string DataBase { get; set; }
  public string Server { get; set; }
  public string Uid { get; set; }
  public string Pwd { get; set; }

}
}

Bu sınıfı programımızın veri tabanı ayarlarını kaydetmek için kullanacak olursak

 MySettings sets = new MySettings();
  sets.DataBase = "Deneme";
  sets.Pwd = "12345";
  sets.Server = "127.0.0.1";
  sets.Uid = "123";

Bu ayarları kalıcı olarak bir dosyada saklamak istersek:
SettingsManager.Settings.Serialize(sets, “c:\\den.set”);

Daha sonra bu dosyadan ayarlarımızı geri okumak istersek:
MySettings
m = SettingsManager.Settings.Deserialize(“c:\\den.set”) as MySettings;

Uygulamanın kaynak kodu aşağıda.

using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;

namespace SettingsManager
{
  public class Settings
  {
  public static object Deserialize(string path)
  {
  BinaryFormatter binaryFormatter = new BinaryFormatter();
  FileStream fs = new FileStream(path, FileMode.Open);
  object o = binaryFormatter.Deserialize(fs);
  fs.Close();
  return o;
  }

public static void Serialize(object o, string path)
  {
  BinaryFormatter binaryFormatter = new BinaryFormatter();
  MemoryStream mem = new MemoryStream();
  binaryFormatter.Serialize(mem, o);
  mem = new MemoryStream(mem.ToArray());
  FileStream x = new FileStream(path, FileMode.OpenOrCreate);
  byte[] memorim = mem.ToArray();
  x.Write(memorim, 0, memorim.Length);
  x.Close();
  }
  }

}
« ASP.NET ve Session Kipleri
Event’ler ve base class’lar »

Alakalı (olabilecek) yazılar

Alakasız (yüksek ihtimal) yazılar




Sen de yorum yazabilirsin!