0
所以我有一个程序中的几个字段设置邮件主题和电子邮件正文为自动消息。获取并设置不被调用
我的电子邮件设置类是这样的:
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方法上设置断点时,断点不会被击中。
任何想法?
当您在'ApplicationSettings_Load'处设置断点并进入代码(使用'F11')时会发生什么? – Stijn
它只是直接调用Settings.Email.Subject/.Body,即使按下Step Into时也不会进入它们。 – malexdev
它不应该只是'Email.Subject'吗?你正在使用'Settings.Email'来推断一个INSTANCE引用,它完全无效了'static'的使用。 – Lloyd