视频链接:https://www.bilibili.com/video/BV1ML411Q7oz/?spm_id_from=333.880.my_history.page.click
适用场景:我在一个下拉框中选择B,那么我下次再进入这个界面,我想让他默认还选择B,怎么办?那就用到了我们的持久化存储
【1.】创建一个ConfigHelper类
using NPOI.OpenXml4Net.OPC;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Configuration = System.Configuration.Configuration;
namespace experiment.Common
{
/// <summary>
/// 通过APP.Configer文件进行数据存储操作的帮助类
/// </summary>
internal class ConfigHelper
{
Configuration config; //创建了一个Configuration对象,用于表示应用程序的配置文件 ,为后面对App.config文件操作作准备
ExeConfigurationFileMap exeConfig = new ExeConfigurationFileMap(); //用于指定要打开的配置文件的路径
/// <summary>
/// 无参构造函数
/// </summary>
public ConfigHelper()
{
exeConfig.ExeConfigFilename = @"../../App.config"; //获取文件所在路径
//打开配置文件,将其关联到config对象。这样就可以通过config对象对配置文件进行读取和操作。
config = ConfigurationManager.OpenMappedExeConfiguration(exeConfig, ConfigurationUserLevel.None);
}
/// <summary>
/// 得到App.config文件中AppSetting节点下的所有key值
/// </summary>
/// <returns></returns>
public string[] ReadAppSettings()
{
return config.AppSettings.Settings.AllKeys.ToArray();
}
/// <summary>
/// 得到App.config文件中AppSetting特定key值节点下的数据
/// </summary>
/// <returns></returns>
public string ReadAppSettings(string key) //方法重载
{
return config.AppSettings.Settings[key].Value;
}
/// <summary>
/// 修改AppSetting节点数据
/// </summary>
/// <param name="key">key</param>
/// <param name="value">key对应的值</param>
public void WriteAppSetting(string key,string value)
{
config.AppSettings.Settings[key].Value = value; //进行数据的修改
config.Save(); //修改完成后进行app.config的数据的保存
}
/// <summary>
/// 节点的删除
/// </summary>
/// <param name="key"></param>
public void DeleteAppSetting(string key)
{
config.AppSettings.Settings.Remove(key); //进行数据的修改
config.Save(); //修改完成后进行app.config的数据的保存
}
/// <summary>
/// 增加节点
/// </summary>
/// <param name="key"></param>
/// <param name="value"></param>
public void AddAppSetting(string key,string value)
{
if (config.AppSettings.Settings[key] == null)
{
config.AppSettings.Settings.Add(key, value); //如果没有这个对应的key就进行加入操作
}
else
{
config.AppSettings.Settings[key].Value = value; //如果有就进行 修改 操作
}
}
/// <summary>
/// 得到App.config文件中第一行key和value
/// </summary>
/// <returns></returns>
public KeyValuePair<string, string> GetFirstAppSetting()
{
AppSettingsSection appSettings = config.AppSettings;
if (appSettings.Settings.Count > 0)
{
string key = appSettings.Settings.AllKeys[0];
string value = appSettings.Settings[key].Value;
return new KeyValuePair<string, string>(key, value);
}
return default(KeyValuePair<string, string>);
}
}
}
【2.】在APP.config配置文件中的app.settings插入想要存储的东西(也可以在代码中调用自动插入)
<appSettings>
<add key="气质联用仪" value="SYS-111" />
</appSettings>
【3.调用】
ConfigHelper configHelper = new ConfigHelper(); //实例化对象
//对配置文件进行更改
configHelper.WriteAppSetting("气质联用仪", this.equipId.Text.ToString()); //“气质联用仪”对应key, this.equipId.Text.ToString()对应value //获取appsetting的第一行的key和value
// 读取App.config配置文件中存储的默认的数据
ConfigHelper configHelper = new ConfigHelper();//创建ConfigHelper对象
KeyValuePair<string, string> firstAppSetting = configHelper.GetFirstAppSetting(); //获取appsetting的第一行的key和value