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