<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      WPF-序列化

       public class SerializeHelper
      {
      
          #region 二進(jìn)制格式
        /// <summary>
        ///  Binary 序列化使用前需要標(biāo)記類可序列化
        /// </summary>
        /// <param name="fileName">序列化到指定的文件</param>
        /// <param name="obj">需要序列化的類</param>
        public static void BinarySerializer<T>(T obj, string fileName) where T : class
        {
            using (Stream fStream = new FileStream(fileName, FileMode.OpenOrCreate, FileAccess.ReadWrite))
            {
                try
                {
                    if (!Directory.GetParent(fileName).Exists)
                    {
                        Directory.GetParent(fileName).Create();
                    }
                    BinaryFormatter binFormat = new BinaryFormatter();//創(chuàng)建二進(jìn)制序列化器
                    binFormat.Serialize(fStream, obj);
                    fStream.Close();
                }
                catch (Exception ex)
                {
                    //HelperEvent.OnMessageColor?.Invoke("二進(jìn)制文件序列化錯誤: " + ex.ToString(), Color.Red, "Main");
                }
            }
        }
      
        /// <summary>
        /// Binary 反序列化使用前需要標(biāo)記類可序列化
        /// </summary>
        /// <param name="filePath">從指定的文件序列化成相應(yīng)對象</param>
        /// <returns>反序列化后的類對象通過泛型限定</returns>
        public static T BinaryDeserializer<T>(string fileName)
        {
            T obj = default(T);
            if (System.IO.File.Exists(fileName))//檢查文件是否存在
            {
                using (FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read))
                {
                    try
                    {
                        fs.Position = 0;
                        BinaryFormatter binFormat = new BinaryFormatter();//創(chuàng)建二進(jìn)制序列化器
                        obj = (T)binFormat.Deserialize(fs);
                        fs.Close();
                        return obj;
                    }
                    catch (System.Exception ex)
                    {
                        //HelperEvent.OnMessageColor?.Invoke("二進(jìn)制文件反序列化錯誤:" + ex.ToString(), Color.Red,"Main");
                        MessageBox.Show("二進(jìn)制文件反序列化錯誤:" + fileName + ex.ToString(),"Main");
                    }
                }
            }
            return obj;
        }
      #endregion
      
      
              #region Json 格式
                    /// <summary>
                    /// 反序列化json文件
                    /// </summary>
                    /// <param name="fileName"></param>
                    /// <returns>反序列化后的類對象通過泛型限定</returns>
                    public static T DeserializeJson<T>(string fileName)
                    {
                        T obj = default(T);
                        try
                        {
                            if (!File.Exists(fileName)) return obj;
                            return JsonConvert.DeserializeObject<T>(File.ReadAllText(fileName));
                        }
                        catch (Exception ex)
                        {
                            //HelperEvent.OnMessageColor?.Invoke("Json文件序列化錯誤: " + ex.ToString(), Color.Red, "Main");
                        }
                        return obj;
                    }
      
                    /// <summary>
                    /// 序列化json文件
                    /// </summary>
                    /// <typeparam name="T">序列化限定的泛型</typeparam>
                    /// <param name="fileName">文件路徑</param>
                    public static void SerializeJson<T>(T obj, string fileName) where T : class
                    {
                        try
                        {
                            string dir = fileName.Substring(0, fileName.LastIndexOf('\\'));
                            if (!Directory.Exists(dir))
                            {
                                Directory.CreateDirectory(dir);
                            }
                            var jsonSetting = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore };
                            var json = JsonConvert.SerializeObject(obj, Newtonsoft.Json.Formatting.Indented, jsonSetting);
                            File.WriteAllText(fileName, json);
                        }
                        catch (Exception ex)
                        {
                            //HelperEvent.OnMessageColor?.Invoke("Json文件反序列化錯誤: " + ex.ToString(), Color.Red, "Main");
                        }
                    }
      
      
                    #endregion
      
      
                    #region XML格式
                          /// <summary>
                          /// 
                          ///《/summary>
                          /// <typeparam name="T">限定的泛型類型</typeparam>
                          /// <param name="fileName">文件路徑</param>
                          /// <param name="obj">序列化的對象</param>
                          /// <param name="omitXmlDeclaration">是否需要xml版本描述</param>
                          /// <param name="removeDefaultNameSpace">是否從新開始添加</param>
                          public static void XmlSerialize<T>(string fileName, T obj, bool omitXmlDeclaration, bool removeDefaultNameSpace)
                          {
                              try
                              {
                                  XmlWriterSettings xmlSetting = new XmlWriterSettings();
                                  xmlSetting.OmitXmlDeclaration = omitXmlDeclaration;
                                  xmlSetting.Indent = true;
                                  xmlSetting.Encoding = new UTF8Encoding(false);
                                  xmlSetting.NewLineChars = Environment.NewLine;
                                  using (XmlWriter xmlWriter = XmlWriter.Create(fileName, xmlSetting))
                                  {
                                      XmlSerializerNamespaces xmlms = new XmlSerializerNamespaces();
                                      if (removeDefaultNameSpace)
                                      {
                                          xmlms.Add(string.Empty, string.Empty);
                                      }
                                      XmlSerializer ser = new XmlSerializer(typeof(T));
                                      ser.Serialize(xmlWriter, obj, xmlms);
                                  }
                              }
                              catch (Exception ex)
                              {
                                  //HelperEvent.OnMessageColor?.Invoke("XML文件序列化錯誤: " + ex.ToString(), Color.Red, "Main");
                              }
                          }
      
                          /// <summary>
                          /// xml反序列化
                          /// </summary>
                          /// <typeparam name="T">限定的泛型類型</typeparam>
                          /// <param name="fileName">文件路徑</param>
                          /// <returns>返回限定的泛型類</returns>
                          public static T XmlDeserialize<T>(string fileName) where T : class
                          {
                              try
                              {
                                  XmlReaderSettings xmlReaderSetting = new XmlReaderSettings();
                                  xmlReaderSetting.CloseInput = true;
                                  using (XmlReader xmlReader = XmlReader.Create(fileName, xmlReaderSetting))
                                  {
                                      XmlSerializer xmlSerializer = new XmlSerializer(typeof(T));
                                      return (T)xmlSerializer.Deserialize(xmlReader);
                                  }
                              }
                              catch (Exception ex)
                              {
                                  //HelperEvent.OnMessageColor?.Invoke("XML文件反序列化錯誤: " + ex.ToString(), Color.Red, "Main");
                                  return null;
                              }
                          }
      
                      #endregion
      
          }
      

      對象序列化需要在類上面加上[Serializable]

      調(diào)用:path是程序的exe目錄,data是序列化文件的

      posted @ 2023-01-12 10:10  小red褲  閱讀(454)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 亚洲精品电影院| 国产日韩入口一区二区| 婷婷四虎东京热无码群交双飞视频| 人成午夜免费视频无码| 久久夜色国产噜噜亚洲av| 亚洲av片在线免费观看| 91精品蜜臀国产综合久久| 久女女热精品视频在线观看| 黄又色又污又爽又高潮| 欧美人成在线播放网站免费| 人妻少妇看a偷人无码| 亚洲男人第一无码av网站| 热久久这里只有精品国产| 高潮迭起av乳颜射后入| 国产精品人伦一区二区三| 国产69精品久久久久99尤物| 日韩人妻无码精品久久| 性色av一区二区三区精品| 国产精品久久久久aaaa| 强伦人妻一区二区三区| 亚洲男女内射在线播放| 国产四虎永久免费观看| 熟妇人妻久久精品一区二区 | 成人免费在线播放av| 97久久超碰亚洲视觉盛宴| 亚洲 一区二区 在线| 日本无产久久99精品久久| 妺妺窝人体色www看美女| 日韩成人高精品一区二区| 少妇太爽了在线观看免费视频 | 欧美疯狂xxxxxbbbbb| 中文字幕第一页国产| 国产一区二区内射最近更新| 少妇人妻精品无码专区视频| 国产卡一卡二卡三免费入口 | 国产尤物精品自在拍视频首页| 欧美xxxx做受欧美.88| 国产盗摄xxxx视频xxxx| 妺妺窝人体色www聚色窝仙踪| a毛片免费在线观看| 日本高清一区免费中文视频|