そのため、自動化されたメッセージの電子メールの件名と電子メールの本文を設定するプログラムにいくつかのフィールドがあります。
私のメール設定クラスは次のとおりです。
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 メソッドにブレークポイントを設定すると、ブレークポイントがヒットしません。
何か案は?