C#序列化与反序列化

写了一段通用的序列化与反序列化代码:

        /// <summary>
        /// 通用的保存对象的函数
        /// </summary>
        /// <param name="fileName"></param>
        public static void Save<T>(string fileName,T obj)
        {
            //写文件
            BinaryFormatter formatter = new BinaryFormatter();
            Stream stream = new FileStream(fileName, FileMode.OpenOrCreate, FileAccess.Write, FileShare.None);
            formatter.Serialize(stream, obj);
            stream.Flush();
            stream.Close();
        }

        /// <summary>
        /// 通用的恢复对象的函数
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="fileName"></param>
        /// <returns></returns>
        public static T Restore<T>(string fileName)
        {
            BinaryFormatter formatter = new BinaryFormatter();
            //读文件
            Stream destream = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.Read);
            var res = (T)formatter.Deserialize(destream);
            destream.Flush();
            destream.Close();
            return res;
        }

 

posted @ 2021-03-17 11:58  顺其自然,道法自然  阅读(64)  评论(0编辑  收藏  举报