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 メソッドにブレークポイントを設定すると、ブレークポイントがヒットしません。

何か案は?

4

1 に答える 1

3

皆さんへ: ご協力ありがとうございます。問題が見つかりました。問題はコードではなく、Visual Studio にありました。

VS を閉じ、PC を再起動し、VS を開き、ソリューションをクリーンアップし、閉じて、再度開き、ビルドしました。今回表示されたプロジェクトをビルドしたときに表示されなかった参照アセンブリの 1 つにエラーがあり、そのエラーを修正すると、これらすべてが適切に機能しました。

あなたの助けがなければ、私はこれを見つけることはできなかったでしょう (私はまだ私のコードが間違っていることに頭を悩ませていたでしょう)、どうもありがとうございました! :)

于 2013-07-10T17:18:16.900 に答える