类声明:
[Serializable] //←这里加一个[Serializable]
public class Preson
{
//......
}
序列化和反序列化:
//===================序列化===================
//首先,创建一个对象
Person p = new Person();
//我们意图使用一个文件来保存这个对象,于是我们会用到一个文件流
using (FileStream fs = new FileStream("D:/xx.xx", FileMode.OpenOrCreate, FileAccess.Write))
{
//创建一个BinaryFormatter对象用于序列化操作。p=>xx.xx
BinaryFormatter bf = new BinaryFormatter();
//顾名思义,序列化。
//需要我们存放对象的文件的流,当然需要我们意图序列化的对象。
bf.Serialize(fs, p);
}
//===================反序列化===================
Person p2 = null;
//首先我们有一个已经存放对象的文件,即上面你的操作产生的文件xx.xx
using (FileStream fs = new FileStream("D:/xx.xx", FileMode.Open, FileAccess.Read))
{
//同样创建一个BinaryFormatter对象用于反序列化。xx.xx=>p2
BinaryFormatter bf = new BinaryFormatter();
//顾名思义,反序列化。
//需要我们存放对象的文件的流。
//该方法返回的object可强制转化为Person对象,因为xx.xx文件原本就是一个Person对象序列化得到的
p2 = (Person)bf.Deserialize(fs);
}
你的类里是不是还有其他自定义的类,需要在那个类的定义上加Serializable
类名前是否加了Serializable特性
[Serializable]
public partial class Yourclass
重写这个类,试试这个吧。
private string _valuecolumn;
public string ValueColumn
{
get { return _valuecolumn; }
set { _valuecolumn = value; }
}
在上方 [Serializable] 就可以了