zoukankan      html  css  js  c++  java
  • C# 序列化[Serializable]

    --首先来段网络上的例子,地址:http://www.cnblogs.com/firstyi/archive/2008/03/18/1111800.html

    实际工作中遇到的问题:

      需要将数据存储成单独的文件,这个单独的文件,需要在任何地方都可以用的到。比如说,存储一系列表格,其中有 double,string , bool等数据类型

    double数据类型在中国所用到的小数点是“.” ,而在瑞典用到的小数点是逗号“,”,如果将所有数据都保存为文本形式的话,不仅仅在写入的时候格式麻烦,而且

    在不同的国家还不通用。

    解决的方法思路:

      可以直接保存各个数据的数据类型。这就要求用到序列化和反序列化的知识。(这个例子很简单,只是自己第一次用到。写下来加深印象)

            [Serializable]
            class channeltable
            {
                public string Name;
                public double Frequency;
                public string Subchannel;
                public string powerTx;
                public bool wide_band;
                public bool subchannel_lock;
            }
    
            private void SerializeNow(string path,List<channeltable> channeltable)
            {
                FileStream fileStream = new FileStream(path, FileMode.CreateNew);
                BinaryFormatter b = new BinaryFormatter();
                b.Serialize(fileStream, channeltable);
                fileStream.Close();
            }
    
            private void DeSerializeNow(string path, ref List<channeltable> channeltable)
            {
                FileStream fileStream = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read);
                BinaryFormatter b = new BinaryFormatter();
                channeltable = b.Deserialize(fileStream) as List<channeltable>;
                fileStream.Close();
            }

    当用序列化的方法保存后,得到的文件,是连续的乱码。不能从保存的文件直接看出来,里面的具体数据。这样可以保证数据不被胡乱篡改。

    需要反序列化后,才能得到我们要的对象。

    例子中序列化的是一个channeltable 集合对象,反序列化后得到的同样是这样一个对象。避免了“,”和“.”的使用,所造成的转换SystemFormatException

  • 相关阅读:
    Git工具提交github.com
    小程序-setData方法使用--改变默认数据data初始值方法
    小程序-全局变量
    小程序--获取openid
    小程序--错误{"errcode":40125,"errmsg":"invalid appsecret, view more at http://t.cn/RAEkdVq, hints: [ req_id: lE8J30972ns32 ]"}
    小程序-获取openid
    微信小程序--简易table表格
    微信小程序--简单页面跳转
    小程序禁止下拉更新
    小程序--登录获取code
  • 原文地址:https://www.cnblogs.com/-liszt/p/3438343.html
Copyright © 2011-2022 走看看