您的位置:首页 > 其它

简单示例说明序列化和反序列化

2008-03-04 16:39 288 查看
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary ;
namespace myserialization
{
class Program
{
static void Main(string[] args)
{
ser serial = new ser();
try
{
serial.load();
Console.WriteLine("打印书的信息");
Console.Write("书名:");
Console.WriteLine(serial.b.Bkname);
Console.Write("作者:");
Console.WriteLine(serial.b.Au);
Console.Write("价格:");
Console.WriteLine(serial.b.Pr.ToString());

}
catch (Exception e)
{

Console.WriteLine(e.Message.ToString ());
Console.WriteLine("请录入书名:");
string name = Console.ReadLine();

Console.WriteLine("请录入作者:");
string author = Console.ReadLine();

Console.WriteLine("请录入价格:");
double price = double.Parse(Console.ReadLine());
serial.b = new book(name, author, price);
serial.save();

}

}
}
[Serializable ]
public class book
{
public book()
{
}
private string bkname;

public string Bkname
{
get { return bkname; }
set { bkname = value; }
}
private string au;

public string Au
{
get { return au; }
set { au = value; }
}
private double pr;

public double Pr
{
get { return pr; }
set { pr = value; }
}

public book(string bookname,string author,double price)
{
this.bkname = bookname;
this.au = author;
this.pr = price;
}

}

public class ser
{
public book b = new book();
public void save()
{

FileStream fs = new FileStream("bb.bin",FileMode.Create );
BinaryFormatter bf = new BinaryFormatter();
bf.Serialize(fs, b);
fs.Close();
}
public void load()
{
FileStream fs = new FileStream("bb.bin", FileMode.Open );
BinaryFormatter bf = new BinaryFormatter();
b = (book )bf.Deserialize(fs);

fs.Close();
}
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: