序列化与反序列化读取配置文件
  f2gltSsjTJUo 2023年11月02日 29 0

定义一个连接配置文件类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;
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  NPQODODLqddb   2024年05月17日   71   0   0 .NET
  mVIyUuLhKsxa   2024年05月17日   53   0   0 .NET
  XkHDHG7Y62UM   2024年05月17日   45   0   0 .NET
  f18CFixvrKz8   2024年05月18日   88   0   0 .NET
  rBgzkhl6abbw   2024年05月18日   78   0   0 .NET
  MYrYhn3ObP4r   2024年05月17日   41   0   0 .NET
  S34pIcuyyIVd   2024年05月17日   60   0   0 .NET
  gKJ2xtp6I8Y7   2024年05月17日   55   0   0 .NET
  MYrYhn3ObP4r   2024年05月17日   40   0   0 .NET
f2gltSsjTJUo