定義一個(gè)連接配置文件類OmCipNetParam
public class OmCipNetParam{
//設(shè)備ip地址
public string PlcIp;
//設(shè)備端口號(hào)
public int PlcPort;
//設(shè)備槽號(hào)
public byte slot;
//本地IP地址
public string LocalIp;
/// <summary>
/// 構(gòu)造函數(shù)
/// </summary>
public OmCipNetParam()
{
PLcIP = "192.168.250.1";
PLcProt = 44818;
PLcSolt = 0;
LocalIp = "127.0.0.1";
}
}
定義一個(gè)結(jié)構(gòu)體,傳遞函數(shù)運(yùn)行結(jié)果和運(yùn)行信息
?
public struct Error
{
public bool Flag;
public string Info;
}
使用Newtonsoft.Json進(jìn)行序列化和反序列化讀寫配置文件
文章來源:http://www.zghlxwxcb.cn/news/detail-711342.html
public static Error Write(string path, OmCipNetParam param)
{
Error er = default(Error);
FileInfo fi = new FileInfo(path);
//文件是否存在標(biāo)志
bool flag = false;
//對(duì)象是否為空標(biāo)志
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);
// 執(zhí)行序列化
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("錯(cuò)誤信息:{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);
//文件目錄是否存在標(biāo)志
bool flag = !fi.Directory.Exists;
if (flag)
{
fi.Create();
}
//文件是否存在標(biāo)志
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);
// 執(zhí)行序列化
string json = JsonConvert.SerializeObject(param);
//寫入文件
writer.WriteLine(json);
writer.Close();
er.Flag = true;
er.Info = "文件不存在,已經(jīng)創(chuàng)建,請(qǐng)配置";
}
}
catch (Exception ex)
{
er.Flag = false;
er.Info = string.Format("錯(cuò)誤信息:{0}", ex.Message);
}
return er;
}
注意這里需要引入庫(kù)文章來源地址http://www.zghlxwxcb.cn/news/detail-711342.html
using System.IO;
using Newtonsoft.Json;
到了這里,關(guān)于序列化與反序列化讀取配置文件的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!