所以我在一个程序中有几个字段来设置自动消息的电子邮件主题和电子邮件正文。
我的电子邮件设置类是这样的:
public static class Email
{
public static string Body
{
get { return (string) SettingsStore.RetrieveSettingValue("emailBody"); }
set { SettingsStore.StoreSetting(new Setting {SettingKey = "emailBody",
SettingValue = value}); }
}
public static string Subject
{
get { return (string) SettingsStore.RetrieveSettingValue("emailSubject"); }
set { SettingsStore.StoreSetting(new Setting {SettingKey = "emailSubject",
SettingValue = value}); }
}
}
我获取和设置值的 UI 代码在这里:
private void ApplicationSettings_Load(object sender, EventArgs e)
{
subjectTextEdit.Text = Settings.Email.Subject;
bodyTextEdit.Text = Settings.Email.Body;
}
private void ApplicationSettings_FormClosing(object sender, FormClosingEventArgs e)
{
Settings.Email.Subject = subjectTextEdit.Text;
Settings.Email.Body = bodyTextEdit.Text;
}
奇怪的是,我在电子邮件设置类中的 get 和 set 方法没有被调用——当我在应用程序启动后第一次访问此表单时,即使值在数据库中,字段也是空白的。在我编辑一次字段并关闭该表单然后再次打开表单(不关闭整个应用程序)之后,这些字段具有我放入其中的文本。
我在 _Load 和 _FormClosing 事件上设置了一个断点,这些都受到了影响。当我在设置类中的 get/set 方法上设置断点时,断点没有被命中。
有任何想法吗?