CSkin博客

标题: 【序列化助手】文件序列化助手SerializeHelper [打印本页]

作者: xiaobo    时间: 2014-8-12 22:17
标题: 【序列化助手】文件序列化助手SerializeHelper
随便写的,主代码:
[C#] 纯文本查看 复制代码

public class SerializeHelper<T>
    {
        /// <summary>
        /// 序列化
        /// </summary>
        /// <param name="obj">要进行序列化的对象</param>
        /// <param name="fileName">保存路径</param>
        public void SerializeNow(T obj, string fileName)
        {
            var fileStream = new FileStream(fileName, FileMode.Create);
            var b = new BinaryFormatter();
            b.Serialize(fileStream, obj);
            fileStream.Close();
        }


        /// <summary>
        /// 反序列化
        /// </summary>
        /// <param name="fileName">要进行反序列化的文件</param>
        /// <returns>结果</returns>
        public T DeSerializeNow(string fileName)
        {
            FileStream fileStream = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.Read);
            BinaryFormatter b = new BinaryFormatter();
            var obj = b.Deserialize(fileStream);
            fileStream.Close();

            T result = default(T);
            if (obj is T)
            {
                result = (T)obj;
            }
            return result;
        }
    }


使用方法:
[C#] 纯文本查看 复制代码
//序列化
var serialize = new SerializeHelper<SettingModel>();
var setting = new SettingModel();
setting.SqlString = txtSqlIP.Text;
setting.SqlUser = txtSqlUser.Text;
setting.SqlPassword = txtSqlPassword.Text;
setting.SqlDbName = txtSqlDbName.Text;
setting.SqlPort = txtSqlPort.Text;
setting.VersionStopMsg = txtVersionStopMsg.Text;

serialize.SerializeNow(setting, "Setting.dat");

//反序列化
var SettingModel = new Setting.SettingModel();
SettingModel = serialize.DeSerializeNow("Setting.dat");



作者: 乔克斯    时间: 2014-8-13 11:25
谢谢海棠受分享>A<
作者: xiaobo    时间: 2014-8-13 14:48
乔克斯 发表于 2014-8-13 11:25
谢谢海棠受分享>A

写程序的时候用到的,新鲜出炉,顺手就发出来了
作者: ppszxc    时间: 2015-4-21 17:57
SettingModel定义不给代码引用会报错的。
作者: xiaobo    时间: 2015-4-21 19:47
ppszxc 发表于 2015-4-21 17:57
SettingModel定义不给代码引用会报错的。

T类型(泛型),随意传递,不是必须要SettingModel这个类.
自定义一个就行了
作者: 王者VIP    时间: 2015-5-21 09:52
支持,顺便学习
作者: coolhq    时间: 2018-12-16 14:09
多谢分享
作者: jacksonwong    时间: 2019-5-25 12:08
多谢分享!
作者: ysuwhai    时间: 2019-5-30 16:25
很好,学习了。谢谢。
作者: Sxxjava    时间: 2019-6-8 22:21
谢谢海棠受分享>A




欢迎光临 CSkin博客 (http://bbs.cskin.net/) Powered by Discuz! X3.2