定义一个连接配置文件类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进行序列化和反序列化读写配置文件
文章来源:https://www.toymoban.com/news/detail-711342.html
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;
}
注意这里需要引入库文章来源地址https://www.toymoban.com/news/detail-711342.html
using System.IO;
using Newtonsoft.Json;
到了这里,关于序列化与反序列化读取配置文件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!