2017-01-31 5 views
0

私は、複数のアプリケーション用にライセンスモジュール(DLL)を作成しています。このDLLは、参照を追加することによってアプリケーションで使用されます。このDLLの要件(パスケース)の1つは、ライセンスの検証に失敗した場合、呼び出し元のアプリケーションは終了/クラッシュする必要があることです。 は正常にシャットダウンしないでください。それはクラッシュする必要があります。私は私が考えることができる4.CUSTOM catchable例外をスローすることは可能ですか?

クイックソリューションではなく、メソッドから値を返すの例外をスローすることがあるなど

DLL(このDLLを使用して)アプリケーションが過去ログに書き込まれます書き込み、メッセージを表示したくありません。しかし、例外はアプリケーションによって捕捉され、目的は完全には提供されません。このため

回避策は、私のDLLでinternalとしてカスタム例外を宣言することです。しかし、これはまた、Exceptionクラスをキャッチすることでバイパスすることができます。私は考えることができる

一つ汚い代替は、コードStackOverflowExceptionをスローします(無限再帰か何かを)書くことです。しかし、私はより良いものを探しています。

カスタム非キャッチ可能な例外をスローする方法はありますか?

参考文献:

Ref1Ref2が構築された過去ログ非キャッチ可能な例外では約議論します。私の質問は、捕捉できないカスタム例外に関するものです。

+0

あなたはいつもちょうどゼロ以外の終了コードで現在のプロセスを殺すことができます。 – Abion47

+3

Environment.FailFastはどうですか? https://msdn.microsoft.com/en-us/library/ms131100(v=vs.110).aspx – Joe

+0

クラッシュさせたい場合は、StackOverflowExceptionの何が問題になっていますか?どのようにしてより良いものを探していますか? –

答えて

2

Environment.FailFastが移動するための方法である、何もその後、シャットダウンからアプリケーションを防ぐことはできません。あなたも、同様obfuscatorsを使用してに見たいと思うかもしれませんので

、C#のライブラリを簡単に変更して再コンパイルすることができることを覚えておいてください。

+0

私はすでに必要に応じてDLLを難読化しています。それは問題ではありません。私はあなたの解決策を試みます。 –

+0

これはWinForm、WinService、WPFを含むすべてのアプリケーションをクラッシュさせますか? WebService、WebAPI、WebFormsのようなIISの下でホストされるアプリケーションでは、どのように動作しますか? IISがクラッシュするか、アプリケーションがクラッシュするだけですか? –

+0

これは呼び出しプロセスをかなり殺しますが、あなたが使用している技術のどれかは重要ではありません。該当する場合は、ウィンドウに「アプリケーションが予期せず停止しました」ボックスも表示されます。 – galister

関連する問題