持久化属性
cs持久化属性,举个例子就是:一个textbox设置一个值后,下次启动程序的时候不变,每次都是上次设置过的值
不使用xml,txt等配置文件
[解决办法]
写个类,用序列化保存,读取时,反序列化
/// <summary>
/// 序列化
/// </summary>
/// <typeparam name="T">类型</typeparam>
/// <param name="value">T 对象</param>
/// <param name="filename">文件路径</param>
/// <returns>返回T对象</returns>
public bool Serialize<T>(T value, string filename)
{
try
{
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter bs = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
System.IO.FileStream stream = new System.IO.FileStream(filename, System.IO.FileMode.Create);
bs.Serialize(stream, value);
stream.Close();
return true;
}
catch
{
return false;
}
}
/// <summary>
/// 反序列化
/// </summary>
/// <typeparam name="T">类型</typeparam>
/// <param name="filename">文件路径</param>
/// <returns></returns>
public T DeSerialize<T>(string filename)
{
T obj;
if (!System.IO.File.Exists(filename))
return default(T);
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter bs = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
System.IO.FileStream stream = new System.IO.FileStream(filename, System.IO.FileMode.Open);
obj = (T)bs.Deserialize(stream);
stream.Close();
return obj;
}
[解决办法]
类必须是可序列化的
要加上 [Serializable] 特性
[解决办法]
不使用xml,txt等配置文件的话,就只能用数据库了。
把要保留的上次数据,写入数据库,启动的时候去读取上一次的数据,赋值。
[解决办法]
1楼的朋友,你的意思还是要提前保存一个值在文件里,下次重新读取,我的意思是不要保存。就像我们在vs中拉一个textbox在界面上,给一个value,也没有产生配置文件啊,但是程序每次启动的时候都是第一次的值。能不能让他启动后是上一次负的最新值。
[解决办法]
拜托动动脑子,不存下来的内容下次从哪里来?你设计时设定的值也是保存下来的,只是保存在代码中而已,你可以看看对应自动生成的代码。