PDA

View Full Version : ذخیره کردن یک شی در یک فایل



cprogram
سه شنبه 12 بهمن 1389, 21:13 عصر
من یه object دارم که در زمان run شدن برنامه دارای مقدار است. به این صورت که یه دستگاه خارجی اسکن میشه و اطلاعات آن در این شی ذخیره میشه. اسکن کردن این دستگاه زمانبر است. برا همین میخوام یه بار اسکن کنم و در دفعات بعدی فراخوانی برنامه اسکن نکنم. پس باید این شی جایی ذخیره بشه که با خارج شدن از برنامه از بین نره. حال سوال اینه: من این شی رو کجا ذخیره کنم؟

ali.rezaei7
سه شنبه 12 بهمن 1389, 23:37 عصر
درود. اگه كلاس Serializable باشه، مي شه بوسيله كلاس BinaryFormatter آبجكت ورد نظرو ذخيره كرد. براي سريالايز كردن كردن يه كلاس بايد صفت Serializable رو قبل از كلاس اضافه كني.


using System.Runtime.Serialization;
namespace namespace
{
[Serializable()]
class class
{
.
.
.
}
}


حالا براي ذخيره/بازيابي آبجكت از كد زير استفاده كن.


using System.Runtime.Serialization.Formatters.Binary;
//Read from file
BinaryFormatter b = new BinaryFormatter();
FileStream fs= new FileStream("FileName", FileMode.Open);
Class cls = (Class)b.Deserialize(fs);
__________________________________________________ __________
//Write to file
BinaryFormatter b = new BinaryFormatter();
FileStream fs = new FileStream("FileName", FileMode.Create);
class cls=new class();
b.Serialize(fs,cls);

cprogram
جمعه 15 بهمن 1389, 15:55 عصر
ممنونم. خیلی مفید بود.
با توجه به توضیحات دوستم ali.rezaei7 (http://barnamenevis.org/member.php?130237-ali.rezaei7) این کد رو نوشتم. توضیحات لازم تو کد هست.
اگه نظری بود خوشحال میشم.