序列化与反序列化读取配置文件

  • 序列化与反序列化读取配置文件已关闭评论
  • 109 次浏览
  • A+
所属分类:.NET技术
摘要

​注意这里需要引入库


定义一个连接配置文件类OmCipNetParam

public class OmCipNetParam{     //设备ip地址     public string PlcIp;     //设备端口号     public int PlcPort;     //设备槽号     public byte slot;     //本地IP地址     public string LocalIp;   /// <summary>   /// 构造函数   /// </summary>   public OmCipNetParam()   {       PLcIP = "192.168.250.1";       PLcProt = 44818;       PLcSolt = 0;       LocalIp = "127.0.0.1";   }      } 

定义一个结构体,传递函数运行结果和运行信息

 public struct Error  {      public bool Flag;      public string Info;  }	 

使用Newtonsoft.Json进行序列化和反序列化读写配置文件

序列化与反序列化读取配置文件

 public static Error Write(string path, OmCipNetParam param)  {      Error er = default(Error);      FileInfo fi = new FileInfo(path);      //文件是否存在标志      bool flag = false;      //对象是否为空标志      bool flag2 = false;      try      {          flag2 = param == null;          if (flag2)          {              param = new OmCipNetParam();          }          flag = !fi.Directory.Exists;          if (flag)          {              fi.Create();          }          StreamWriter writer = new StreamWriter(path);          // 执行序列化          string json = JsonConvert.SerializeObject(param);          //写入文件          writer.WriteLine(json);          writer.Close();          er.Flag = true;          er.Info = "保存完成";       }      catch (Exception ex)      {          er.Flag = false;          er.Info = string.Format("错误信息:{0}", ex.Message);      }      return er;   } 

同理反序列读取配置文件

 public static Error Reade(string path,out OmCipNetParam param)  {      param = new OmCipNetParam();      Error er = default(Error);       try      {           FileInfo fi = new FileInfo(path);          //文件目录是否存在标志          bool flag = !fi.Directory.Exists;          if (flag)          {              fi.Create();                        }          //文件是否存在标志          bool flag2 = fi.Exists;          //如果存在          if(flag2){              //文件读取              //  string json = File.ReadAllText(path);              StreamReader reader = new StreamReader(path);              string json = reader.ReadLine();               //反序列              param = JsonConvert.DeserializeObject<OmCipNetParam>(json);              reader.Close();              er.Flag = true;              er.Info = "读取成功!";          }          else          {              StreamWriter writer = new StreamWriter(path);              // 执行序列化              string json = JsonConvert.SerializeObject(param);              //写入文件              writer.WriteLine(json);              writer.Close();              er.Flag = true;              er.Info = "文件不存在,已经创建,请配置";          }              }      catch (Exception ex)      {          er.Flag = false;          er.Info = string.Format("错误信息:{0}", ex.Message);       }       return er;  } 

注意这里需要引入库

using System.IO; using Newtonsoft.Json;