Ana sayfa » BinaryFormatter
Etiketler: BinaryFormatter SerialiseKategoriler: .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();
}
}
}
Sen de yorum yazabilirsin!