注册
|
登录
发帖
热搜
活动
交友
discuz
论坛
BBS
翼度工具
翼度网址导航
开发工具
Linux命令速查
网页设计配色表
在线制作icon
颜色代码选取器
翼度科技
»
论坛
›
编程开发
›
.net
›
查看内容
返回列表
发新帖
序列化与反序列化读取配置文件
晨曦飘雪
晨曦飘雪
当前离线
积分
15
5
主题
5
帖子
15
积分
新手上路
新手上路, 积分 15, 距离下一级还需 35 积分
新手上路, 积分 15, 距离下一级还需 35 积分
积分
15
发消息
显示全部楼层
定义一个连接配置文件类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;
复制代码
来源:
https://www.cnblogs.com/QZLiang/archive/2023/10/27/17788500.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
上一篇:
.net core中你的MD5用对了吗?
下一篇:
简单实现.NET Hook与事件模拟
发表于 2023-10-27 04:32:29
来自手机
举报
回复
使用道具
分享
返回列表
发新帖
本版积分规则
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
快速回复
快速回复
返回顶部
返回顶部
返回列表
返回列表