シンプルなwpfアプリケーションを使用して、明示的にシャットダウンしてから実行しても引き続き実行します。明示的なシャットダウン後もWPFアプリケーションが続行します
サードパーティのアプリケーションと統合されており、特定の種類の特定のコンテンツをいくつかのドキュメントが初期化されたときに開いていることを確認する必要があります。ここで
は、初期化コードの一部です:
try
{
ActiveProductDoc = Automation.CATIA.ActiveDocument as ProductDocument;
}
catch
{
InvalidAssemblyShutdown("You must have an assembly open before you run the app");
}
if(ActiveProduct == null)
InvalidAssemblyShutdown("You must have one assembly open (not a part)");
ActiveProduct = ActiveProductDoc.Product;
そして、ここではInvalidAssemblyShutdown方法である:
private void InvalidAssemblyShutdown(string message)
{
MessageBox.Show(message);
Close();
Application.Current.Shutdown();
}
私はOnMainWindowCloseに、アプリケーションのShutdownModeプロパティを設定しました。
私は現在、ユーザーが間違った種類のドキュメントを開いているため、ActiveProductフィールドがnullであるユースケーステストを行っています。 InvalidAssemblyShutdownメソッドは期待通りに呼び出されますが、これにもかかわらず、シャットダウンコールに続く初期化メソッドの行は実行され、例外がスローされます。
何が起こっているのですか?
代わりに例外をスローし、グローバル例外ハンドラを使用する必要がありますか?
その答えは簡単すぎる – Eric
あなたが望むなら、はるかに複雑なものを思いつくことができると確信しています。 –