C# settings 文件基础用法
自定义设置项类型
Serializable 修饰的枚举,可作为设置项类型
[Serializable]
public enum DeviceBrand
{
None = 0,
[Description("虚拟高拍仪")]
VirtualDocumentCamera = 1,
[Description("自带摄像头")]
UniversalDocumentCamera = 2
}
读取与设置
//读取
var value = Properties.Settings.Default.PrinterName; //方式一
var value1 = Properties.Settings.Default["PrinterName"]; //方式二
//设置
Properties.Settings.Default.PrinterName = "打印机名称";//方式一
Properties.Settings.Default["PrinterName "] = "打印机名称";//方式二
保存与重置
修改了设置,需保存,否则仅本次运行有效
//保存
Properties.Settings.Default.PrinterName = "打印机名称";//修改某项设置
Properties.Settings.Default.Save();
//重置到默认设置,再保存
Properties.Settings.Default.Reset();
Properties.Settings.Default.Save();
版本升级
修改了用户级别的设置后,会保存在文件 C:\Users\用户名\AppData\Local\exe公司名\test.exe_Url_ntqrdjot1fraqmkducfwoezjxpntmwzc\版本号\user.config
中。
提高版本号后需要主动升级配置,否则使用默认值
//先判断是否升级过配置
//一定要先判断,因为每次执行Upgrade,低版本配置文件都会覆盖高版本配置文件
if (!ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoamingAndLocal).HasFile)
{
Settings.Default.Upgrade();//低版本配置文件复制到高版本配置文件
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构