关于C#winform端Settings.settings的见解

1.说明

由于最近工作比较忙很长时间没有写文章了,最近在项目中使用Settings.settings时遇见了一些问题,故作记录,希望各位大神指点。

2.Settings.settings说明

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

Settings.settings结构如上图,在Settings.settings中添加节点时Settings.Designer.cs自动生成该节点的属性,App.config自动生成节点信息。

3.使用方式介绍

private void button1_Click(object sender, EventArgs e)
{RefreshLabel();
}private void RefreshLabel()
{label1.Text = "UserSave:" + Settings.Default.UserSave;label2.Text = "User:" + Settings.Default.User;label3.Text = "Application:" + Settings.Default.Application;Settings.Default.UserSave = "2";Settings.Default.User = "2";
}private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{Settings.Default.Save();
}

4.属性介绍

名称:自定义节点名称,使用 Settings.Default.名称 获取或修改该节点的值

类型:设置节点的类型,获取或修改该节点的值必须使用相同的数据类型;

范围:包含用户和应用程序(后续单独说明);

值:可设置初始值;

5.属性-范围

范围包含了用户和应用程序

(1)用户节点

1.允许修改节点值;
2.修改节点的值仅在程序本次运行时生效,下次运行需要使用程序的默认值则不能调用Settings.Default.Save();3.修改节点的值需要在程序下次运行使用必须调用Settings.Default.Save();

Settings.Default.Save(); 介绍

1.如果节点设置为用户,并且调用了Save()方法,会在C:\Users\Administrator\AppData\Local\项目名称\对应版本\1.0.0.0\user.config的文件中存储修改后的节点的值;
项目名称:当前运行的项目的名称
对应版本:共四种,包含:开发环境中启动的Debug、Release以及在Debug或Release中直接执行程序的.exe(可执行文件);2.若未调用Save()方法,user.config不会生成或修改;3.调用Save()方法时,仅保存调用前修改过所有节点的值,调用后修改的值不会改变,修改后节点在exe.config、vshost.exe.config不会显示修改后的值4.建议在程序退出时,调用Save()方法;若仅需要节点在本次调用修改有效,则不能调用Save(),防止程序出现不可估计的错误;5.若不仅包含了启动本次修改有效节点,还包含了修改后下次启动仍有效节点,建议在Settings.settings中添加用户节点,但是不能在程序调用Save方法,再配合使用Configuration使用。

(2)应用程序节点

1.节点的值不允许在程序中修改;
2.不会在C:\Users\Administrator\AppData\Local\项目名称\对应版本\1.0.0.0\user.config生成节点;
3.在app.config、exe.config、vshost.exe.config中生成节点

6.Configuration说明

在app.config添加节点,会在exe.config、vshost.exe.config中生成节点;

#region ConfigurationManager使用说明
// 想调用ConfigurationManager必须要先在工程里添加system.configuration程序集的引用
// 在引用点击右键选择添加引用,搜索Config就会找到
#endregionusing System;
using System.Configuration;
using System.Xml;/******************************************************
* 模块作者: zheng
* 创建时间: 2021/6/27 20:18:15
* 功能描述: 1.用于对Winform端对EXE.config或操作vshost.exe.config文件的读写;
*           2.修改构造函数中初始化对象改变操作对象。
* 使用说明: 1.右击引用,添加System.Configuration;
*           2.使用该类时需要修改命名空间;
*           3.使用前建议向app.config添加节点,节点示例:
*           
*             
*             
*                      
*******************************************************/
namespace MicroscaleMeasure.Utils
{class AppConfigUtil{/// /// 管理配置文件对象/// private static readonly Configuration MConfig;static AppConfigUtil(){//1.操作vshost.exe.config//MConfig = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);//2.操作exe.configvar file = System.Windows.Forms.Application.ExecutablePath;MConfig = ConfigurationManager.OpenExeConfiguration(file);}/// /// 获取AppSettings中某一节点值/// /// 节点名称public static string GetConfigValue(string key){if (MConfig.AppSettings.Settings[key] != null)return MConfig.AppSettings.Settings[key].Value;elsereturn string.Empty;}/// /// 修改配置文件,若节点不存在则添加节点/// /// 需要修改的节点名称/// 需要修改的节点的值public static void UpdateAppSettings(string aKey, string aValue){if (MConfig.AppSettings.Settings[aKey] != null)MConfig.AppSettings.Settings[aKey].Value = aValue;// 修改else{var ass = (AppSettingsSection)MConfig.GetSection("appSettings");ass.Settings.Add(aKey, aValue);// 添加}MConfig.Save(ConfigurationSaveMode.Modified);// 保存修改ConfigurationManager.RefreshSection("appSettings");// 强制重新载入配置文件的连接配置}}
}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部