二进制流BinaryFormatter存储读取数据的细节测试

二进制流的使用很方便,为了更好的理解应用它,我创建简单对象开始测试它的增加特性和减少特性.

        [Serializable]
class Data----------开始时候的存储对象
{
public string name = "namex";
public string ceshia = "aa";
public string ceshib = "bb";
} [Serializable]
class Data----------在代码中修改存储类, 增加了新的字段
{
public string name = "namex";
public string ceshia = "aa";
public string ceshib = "bb"; public string ceshic = "cc";
public int md = ;
public long ml = ;
} //读取后,新增加的值由于在原来存储文件中不存在,它们被赋予默认初始值,而非代码中指定的初始值. string ceshic = null;
int md = ;
long ml = ; //减少数据后, 不会影响原来的值.存储多余的值被自动忽略 [Serializable]
class Data----------在代码中修改存储类,
{
public string name = "namex";
public string ceshia = "aa";
public string ceshib = "bb"; // public string ceshic = "cc";
// public int md = 21;
// public long ml = 2;
} //需要注意的点来了,新增加的变量名字不能原来存储过的变量名字相同,如果相同,系统不会因为变量类型不同,而判断是不同变量值,而会抛出异常,提醒你无法转化.
[Serializable]
class Data----------在代码中修改存储类,
{
public string name = "namex";
public string ceshia = "aa";
public string ceshib = "bb"; // public string ceshic = "cc";
// public int md = 21;
// public long ml = 2;
public string ml = ;//新增加的变量名字和原先存储的数据变量名字相同
}

所以在多次增加或者删除字段时,尽量保持变量的名字都是不同的,这样增减字段都会保持与过去存储文件的兼容性!

上一篇:Tier和RBD Cache的区别


下一篇:mysql--外键(froeign key)