2013-07-10 30 views
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方法上設置斷點時,斷點不會被擊中。

任何想法?

+1

當您在'ApplicationSettings_Load'處設置斷點並進入代碼(使用'F11')時會發生什麼? – Stijn

+0

它只是直接調用Settings.Email.Subject/.Body,即使按下Step Into時也不會進入它們。 – malexdev

+5

它不應該只是'Email.Subject'嗎?你正在使用'Settings.Email'來推斷一個INSTANCE引用,它完全無效了'static'的使用。 – Lloyd

回答

3

給大家:感謝您的幫助,我發現問題 - 問題是Visual Studio,而不是代碼。

我關閉VS,重新啓動PC,打開VS,清理解決方案,關閉,重新打開,建立。在我引用的一個程序集中出現了一個錯誤,這個錯誤並沒有出現在我創建此次出現的項目的其他所有時間,並且修復了這個錯誤導致所有這些都正常工作。

如果沒有你的幫助,我從來沒有發現過這個東西(我仍然在摸索着我的腦袋,想知道我的代碼是錯的),所以非常感謝你! :)