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

SettingsProperty未按添加顺序保存至user.config的原因排查

问题:动态添加的Settings属性写入user.config时顺序混乱

问题背景

  • 动态创建的配置属性名称带有递增前缀,示例格式:
    • XXX_00_MySetting
    • XXX_01_MyOtherSetting
    • XXX_02_MyOtherOtherSetting
  • 原本预期属性写入user.config的顺序,与调用SettingsPropertyCollection.Add方法添加属性的顺序一致,但实际每次保存后打开user.config,属性的写入顺序完全混乱。
  • 尝试过以下排序代码,没有效果:

    Properties.Settings.Default.Properties.OfType<SettingsProperty>().OrderBy(s => s.Name);

属性创建与保存代码

属性创建代码(C#)

SettingsProperty setting = new SettingsProperty(settingName);
setting.PropertyType = typeof(double);
setting.DefaultValue = column.ActualWidth;
setting.IsReadOnly = false;
setting.Provider = Settings.Default.Providers["LocalFileSettingsProvider"];;
setting.Attributes.Add(typeof(System.Configuration.UserScopedSettingAttribute), new System.Configuration.UserScopedSettingAttribute());

属性保存代码(C#)

Settings.Default.Properties.Add(setting);
Settings.Default[setting.Name] = someValue; // 注:仅将属性添加到Properties集合无法写入user.config,必须赋值后才会被识别为已覆盖的默认值

预期与实际效果

期望写入顺序

  • XXX_00_MySetting
  • XXX_01_MyOtherSetting
  • XXX_02_MyOtherOtherSetting

实际混乱顺序

  • XXX_02_MyOtherOtherSetting
  • XXX_00_MySetting
  • XXX_01_MyOtherSetting

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 07:32:41