میتونی با جستجو مثالهای زیادی رو هم در msdn و هم سایتهای دیگه پیدا کنی.
کلاس ها رو با Attribute زیر مشخص میکنی
[Serializable]
class MyClass
{
//...
}
حالا فرضا یک لیست از این کلاس داری
List<MyClass> mc = new List<MyClass>();
که بعد از مقداردهی به این لیست
به این صورت ذخیره میکنی
private void Save()
{
BinaryFormatter bf = new BinaryFormatter();
using (Stream sw = File.Open(Application.StartupPath + "//MM", FileMode.OpenOrCreate))
{
bf.Serialize(sw, mc);
}
}
به این صورت هم میخونی و تبدیل به لیست میکنی:
private void Load()
{
BinaryFormatter bf = new BinaryFormatter();
using (Stream sr = File.Open(Application.StartupPath + "//MM", FileMode.Open))
{
object obj = bf.Deserialize(sr);
mc = obj as List<MyClass>;
}
}
برای اینکه به ازای هر لیست یک فایل نداشته باشی میتونی همه کلاسها و متدهای مورد نیازت رو در یک کلاس مثلا به نام University قرار بدی و موقع ذخیره و بازیابی شئ ای از این کلاس رو ذخیره و بازیابی کنی تا یک فایل داشته باشی.