(NHibernateを使用して)データベースに接続するよりも、データベースに接続するためのいくつかの設定をユーザーに要求するWPFアプリケーションがあり、すべてが正しい場合は、メインビューを表示します。接続にエラーがある場合は、エラーの内容をユーザーに伝えて、再試行させたいと思います。これが私が望むことをするいくつかの単純化されたコードです:
編集 :
問題はNHibernateだけにあるのではないようです。ここで単純なアプリを実行すると、コンストラクターで未処理の例外が発生します。
public partial class App : Application
{
protected override void OnStartup(StartupEventArgs e)
{
bool retry;
do
{
retry = false;
Window1 view = new Window1();
try
{
throw new Exception("Test message");
view.ShowDialog();
}
catch (Exception iException)
{
MessageBox.Show(iException.ToString());
retry = true;
}
finally
{
view.Close();
}
}
while (retry);
}
}
私は例外を取得して未処理にしますが、テストメッセージが表示されるので、実際には例外です(try / catchブロック内にある場合でも)。例外が発生したときに中断すると、Window1のコンストラクター内で発生したことが通知されます。Window1にはバインディングまたはコントロールは含まれていません。Visual Studio 2008で新しいWPFアプリケーションを作成した場合に作成されるのは基本的なWindow1です。このバグを2台のコンピューターで再現しました(新しいWPFアプリケーションを作成し、このコードをApp.xaml.csに貼り付けるだけです)。
みなさん、ありがとうございました