c# 学习笔记 二进制序列化
2015-01-04 15:59
411 查看
要保存的类person
namespace serializer
{
[Serializable] //必须要标记可序列化
class person
{
public int num;
public string name;
public person(int num, string name)
{
this.num = num;
this.name = name;
}
}
}
主窗体
namespace serializer
{
public partial class Form1 : Form
{
Dictionary<string, person> listp;
Dictionary<string, person> listfan;
public Form1()
{
listp = new Dictionary<string, person>();
listfan = new Dictionary<string, person>();
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
listp.Add("1", new person(130, "李四"));
listp.Add("2", new person(131, "张三"));
listp.Add("3", new person(132, "王五"));
SaveFileDialog sfd = new SaveFileDialog();
sfd.Filter = "*.bin|*.BIN|*.*|(*.*)";
if (sfd.ShowDialog() == DialogResult.OK)
{
string name = sfd.FileName;
///////////////////////////////序列化过程
IFormatter serializer = new BinaryFormatter();
using (FileStream fs = new FileStream(name, FileMode.Create, FileAccess.Write))
{
serializer.Serialize(fs, listp);
}
}
}
private void button2_Click(object sender, EventArgs e)
{
OpenFileDialog ofd = new OpenFileDialog();
if (ofd.ShowDialog() == DialogResult.OK)
{
string name = ofd.FileName;
///////////////////////////////////反序列化过程
IFormatter serializer = new BinaryFormatter();
using (FileStream fs = new FileStream(name, FileMode.Open, FileAccess.Read))
{
listfan = serializer.Deserialize(fs) as Dictionary<string, person>;
}
}
MessageBox.Show("1"+" number:"+listfan["1"].num.ToString()+"name:"+listfan["1"].name+"\n"+"2"+" number:"+listfan["2"].num.ToString()+"name:"+listfan["2"].name+"\n"+"3"+" number:"+listfan["3"].num.ToString()+"name:"+listfan["3"].name);
}
}
}
namespace serializer
{
[Serializable] //必须要标记可序列化
class person
{
public int num;
public string name;
public person(int num, string name)
{
this.num = num;
this.name = name;
}
}
}
主窗体
namespace serializer
{
public partial class Form1 : Form
{
Dictionary<string, person> listp;
Dictionary<string, person> listfan;
public Form1()
{
listp = new Dictionary<string, person>();
listfan = new Dictionary<string, person>();
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
listp.Add("1", new person(130, "李四"));
listp.Add("2", new person(131, "张三"));
listp.Add("3", new person(132, "王五"));
SaveFileDialog sfd = new SaveFileDialog();
sfd.Filter = "*.bin|*.BIN|*.*|(*.*)";
if (sfd.ShowDialog() == DialogResult.OK)
{
string name = sfd.FileName;
///////////////////////////////序列化过程
IFormatter serializer = new BinaryFormatter();
using (FileStream fs = new FileStream(name, FileMode.Create, FileAccess.Write))
{
serializer.Serialize(fs, listp);
}
}
}
private void button2_Click(object sender, EventArgs e)
{
OpenFileDialog ofd = new OpenFileDialog();
if (ofd.ShowDialog() == DialogResult.OK)
{
string name = ofd.FileName;
///////////////////////////////////反序列化过程
IFormatter serializer = new BinaryFormatter();
using (FileStream fs = new FileStream(name, FileMode.Open, FileAccess.Read))
{
listfan = serializer.Deserialize(fs) as Dictionary<string, person>;
}
}
MessageBox.Show("1"+" number:"+listfan["1"].num.ToString()+"name:"+listfan["1"].name+"\n"+"2"+" number:"+listfan["2"].num.ToString()+"name:"+listfan["2"].name+"\n"+"3"+" number:"+listfan["3"].num.ToString()+"name:"+listfan["3"].name);
}
}
}
相关文章推荐
- 黑马程序员之C#学习笔记: XML和实体序列化和反序列化
- C# 中XML序列化与反序列化学习笔记
- C#学习笔记3:提示“截断字符串或二进制数据”错误解决方法
- 我的学习笔记(C#编程中将截断或二进制数据的问题)
- C#学习笔记之对象和二进制之间的转换
- c#学习笔记之序列化与反序列化-1
- 黑马程序员 C#学习笔记⑨ 序列化对象
- 【学习笔记】C#Json和Bson序列化中遇到的一些问题
- [C#]C#学习笔记-隔离存储,序列化
- C#二进制序列化使用笔记
- c#学习笔记之序列化与反序列化-2
- C#学习笔记 对象序列化
- 不能空着,发篇以前的C++学习笔记,不过现在在学C#
- C#学习笔记(七)
- 《Web Service 编程 --用C#.NET 开发网络服务》北京希望出版社 我的学习笔记(第二章)(也就是书上抄了一写东西而已)
- C#技术内幕 学习笔记
- Mcad学习笔记之序列化(2进制和Soap序列化)
- The key of C# 学习笔记I-II
- 2310学习笔记(二)--C#基础
- java对象序列化学习笔记