首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET Framework >

持久化属性,该如何解决

2012-12-15 
持久化属性cs持久化属性,举个例子就是:一个textbox设置一个值后,下次启动程序的时候不变,每次都是上次设置

持久化属性
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,也没有产生配置文件啊,但是程序每次启动的时候都是第一次的值。能不能让他启动后是上一次负的最新值。
[解决办法]
拜托动动脑子,不存下来的内容下次从哪里来?你设计时设定的值也是保存下来的,只是保存在代码中而已,你可以看看对应自动生成的代码。

热点排行