2013-07-10 32 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,清理解决方案,关闭,重新打开,建立。在我引用的一个程序集中出现了一个错误,这个错误并没有出现在我创建此次出现的项目的其他所有时间,并且修复了这个错误导致所有这些都正常工作。

如果没有你的帮助,我从来没有发现过这个东西(我仍然在摸索着我的脑袋,想知道我的代码是错的),所以非常感谢你! :)