在我的应用程序的用户设置中,我有一个名为“网站”的StringDictionary
。 NullReferenceException,消息“对象引用未设置为对象的实例”。当它到达这一行:Properties.Settings.Default.websites.Add(nameBox.Text, urlBox.Text);
,但我无法弄清楚原因。 VS调试器显示nameBox.Text和urlBox.Text是正确的值。
修改
我已经确定它默认为null,所以在Form.Load上,我添加了
if (Properties.Settings.Default.websites == null) {
MessageBox.Show("property is null");
Properties.Settings.Default.websites = new StringDictionary();
}
但现在设置没有保存。
答案 0 :(得分:0)
看起来您的StringDictionary网站Scope设置为Application,无法在运行时修改。您将把范围更改为用户,以便可以在每个用户的运行时更改
取自MSDN
Application-scoped settings可用于URL等信息 用于Web服务或数据库连接字符串。这些值是 与应用程序相关联。因此,用户无法更改它们 在运行时。
修改:要保存设置,您必须使用Properties.Settings.Default.Save();