You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET Core 6 C#读取Settings.settings配置问题求助

读写VS2022中Settings.settings创建的用户设置的正确方法

你之前用ConfigurationManager["FormTop"]读取失败,是因为通过Settings.settings界面添加的用户设置,默认会生成强类型的Settings类,而非直接暴露在ConfigurationManager的根集合中。以下是正确的读写方式:

一、读取用户设置

直接使用自动生成的Properties.Settings.Default对象访问,这是最简便且类型安全的方式:

// 读取FormTop设置
int iFormTop = Properties.Settings.Default.FormTop;

二、写入用户设置(仅针对User范围的设置)

注意:Settings.settings里的设置分为App范围和User范围,App范围的设置是只读的,编译后无法修改;只有User范围的设置支持读写。

修改并保存User范围设置的代码:

// 修改FormTop的值
Properties.Settings.Default.FormTop = 150;
// 将修改保存到用户专属的配置文件(而非原App.Config)
Properties.Settings.Default.Save();

调用Save()后,设置会被保存到当前用户的%appdata%\[你的应用名]目录下的配置文件中,下次启动程序时会自动加载修改后的值。

可选:用ConfigurationManager读取(不推荐)

如果一定要通过ConfigurationManager读取User范围的设置,需要定位到<userSettings>节点下的对应配置,步骤较繁琐:

// 打开当前程序的用户级配置文件
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoamingAndLocal);
// 获取userSettings节点下的专属设置节
UserSettingsSection userSettingsSection = (UserSettingsSection)config.GetSection("userSettings/MissingSamplesGUI.Properties.Settings");
// 找到FormTop设置项
SettingElement formTopSetting = userSettingsSection.Settings.Get("FormTop");
// 解析值
int iFormTop = int.Parse(formTopSetting.Value.ValueXml.InnerText);

这种方式需要手动处理类型转换,不如强类型的Settings类便捷,除非有特殊需求,否则不建议使用。

内容的提问来源于stack exchange,提问作者Lee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 17:31:00