OK-つまり、ダイアログのようにWPFビューを呼び出すレガシーMC++アプリがあります。抽象ViewModel親クラスがあります。UnhandledException処理をViewModelに追加して、ViewModel内でスローされた例外またはその子実装を、MC ++アプリに伝播する前に処理できるようにする方法はありますか?
使用できるアーキテクチャフレームワークは実際にはありません。これまでに実装されたすべてのViewModelsとViewsは1回限りです:(
OK-つまり、ダイアログのようにWPFビューを呼び出すレガシーMC++アプリがあります。抽象ViewModel親クラスがあります。UnhandledException処理をViewModelに追加して、ViewModel内でスローされた例外またはその子実装を、MC ++アプリに伝播する前に処理できるようにする方法はありますか?
使用できるアーキテクチャフレームワークは実際にはありません。これまでに実装されたすべてのViewModelsとViewsは1回限りです:(
ビューを開いてダイアログとして表示するメソッドに例外処理を追加できるはずです(つまり、Window.ShowDialog()
呼び出しをラップします)。これにより、ビューまたはビューモデル内からスローされた例外がすべてキャッチされます。それらはすべてその時点から「起動」されるためです。
にアクセスできる場合はDispatcher
、Dispatcher.UnhandledException
イベントに関連付けることができます。それ以外の場合は、イベントに関連付けることができますAppDomain.UnhandledException
。
Dispatcher.CurrentDispatcher.UnhandledException += HandleDispatcherException;
someDispatcher.UnhandledException += HandleDispatcherException;
AppDomain.CurrentDomain.UnhandledException += HandleAppDomainException;