Serializable,脱离对DB的束缚
一般意义上的软件开发,至少会包含两部分代码和数据,而数据一般会存放在SQL Server, Oracel, My SQL这样的数据库中,或者保存到Excel中,而Serializable却可以把对象序列化存储在硬盘中,虽然只能应用于轻量级数据的软件开发,但确实是脱离的对DB的束缚,至少不用在机器上安装SQL Server,再执行一批SQL Script,来创建表,存储过程之类的。
代码也很简单,就是在需要序列化的对象上面添加特性[Serializable]的标签
1 [Serializable] 2 public class DBObject 3 { 4 public List<DataObject> dataItems; 5 public int Id; 6 public string Name; 7 }
存储代码,这里的文件名称可以任意取,例如"MyDBFile.Bin"也可以:
DBObject dBobj=new DBObject();
dBobj=.....
IFormatter formatter = new BinaryFormatter(); Stream stream = new FileStream("MyDBFile.DB", FileMode.Create, FileAccess.Write, FileShare.None); formatter.Serialize(stream, dBObj); stream.Close();
读取代码,拿到dBobj之后,你想怎么用都行了,呵呵:):
DBObject dBobj=new DBObject();
IFormatter formatter = new BinaryFormatter(); Stream stream = new FileStream("MyDBFile.DB, FileMode.Open, FileAccess.Read, FileShare.Read); dBobj = (DBObject)formatter.Deserialize(stream); stream.Close();