using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections;
using System.IO;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;
namespace ConsoleApplication2
{
[Serializable()]
public class worker
{
public string person;
public long phone;
}
[Serializable()]
public class database
{
public SortedList<int, worker> db = new SortedList<int, worker>();
public void save()
{
FileStream f = new FileStream(@"d:\people.dat",
FileMode.Create);
BinaryFormatter b = new BinaryFormatter();
b.Serialize(f, this);
f.Close();
}
public database load()
{
BinaryFormatter b = new BinaryFormatter();
using (FileStream f = new FileStream(@"d:\people.dat",
FileMode.Open))
{
return (database)b.Deserialize(f);
}
}
}
class Program
{
static void Main(string[] args)
{
database d = new database();
worker w = new worker();
w.person = "abc";
w.phone = 123;
d.db[1] = w;
worker w1 = new worker();
w1.person = "bcd";
w1.phone = 234;
d.db[2] = w1;
d.save();
d = d.load();
Console.WriteLine(d.db[1].person + " " + d.db[1].phone);
Console.WriteLine(d.db[2].person + " " + d.db[2].phone);
Console.ReadLine();
}
}
}
-----------------------------------------------------------------------------------
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using System.Runtime.Serialization; //allows classes to be saved/copied
using System.Runtime.Serialization.Formatters.Binary;
namespace file5demo
{
[Serializable()] //vb <Serializable()> _
class emp
{ public string name;
public double rate;
}
//ways to copy a class
//1. copy each variable
//2. make a Copy method
//3. make a Clone method
//4. use serializing to copy everything in a class
class Program
{ static void Main(string[] args)
{ emp x = new emp();
emp y = new emp();
x.name = "bob";
x.rate = 15.00;
//code to copy a class
MemoryStream m = new MemoryStream();
BinaryFormatter b = new BinaryFormatter();
b.Serialize(m, x);
m.Seek(0, 0); //reset memory to beginning
y = (emp)b.Deserialize(m);
//confirm
Console.WriteLine(y.name);
Console.ReadLine();
}
}
}