我有一个奇怪的问题,我无法解决。我有一个继承ApplicationSettingsBase的自定义设置类。它具有用户范围的设置,如下所示。 /// <summary> /// The Last Active Account /// </summary> [UserScopedSettingAttribute()] public AccountKeyClass ActiveAccount { get { try { return (AccountKeyClass)this["ActiveAccount"]; } catch(Exception error){} return null; } set { this["ActiveAccount"] = value; if (!this.AccountList.Contains(value)) { //this.AccountList.Add(value); } } } /// <summary> /// Account List /// Key: UserID /// Value: AccountKeyClass /// </summary> [UserScopedSettingAttribute()] public List<AccountKeyClass> AccountList { get { try { if(this["AccountList"] != null) return (List<AccountKeyClass>)this["AccountList"]; } catch(Exception error){} return null; } set { this["AccountList"] = value; } }我有两个表单,一个主表单和一个设置表单,可在其中更改应用程序设置。当我创建SettingsForm并更改AccountList Settings值时,user.config文件会发生变化。我的SettingsForm的“应用/确定”按钮调用Settings.Save(),然后Settings.Reload()关闭该表单。问题在于,当调用.Reload()时,Settings.AccountList变为null。更重要的是,user.config文件永远不会更改,如果我关闭应用程序并重新打开,则user.config文件仍然正确,但是Settings.AccountList永远不会读入。如果我从不调用.Reload(),则会读取Settings.AccountList。更新:如果我创建一个List和Save();从我的MainForm,然后从我的user.config中读取AccountList。但是,如果我使用辅助表单(SettingsForm)将其添加到AccountList并调用Save(),则下次运行该应用程序时,不会读取设置,并且在该位置返回空值。即使我不使用Reload(),也会发生这种情况。我认为问题与使用通用列表有关。将要保存的AccountKeyClass保存为序列化XML。 (adsbygoogle = window.adsbygoogle || []).push({}); 最佳答案 我记得.Reload()有类似的问题。只是为了踢...尝试在发行版中运行它,或者在安装程序中不运行的调试模式下运行(如果尚未运行)。 (adsbygoogle = window.adsbygoogle || []).push({});
09-03 19:01