我正在为多个应用程序编写许可证模块(DLL)。此DLL将通过添加引用在应用程序中使用。此DLL的一个要求(通过案例)是,如果许可证验证失败,则调用应用程序应终止/崩溃。它不应该正常关闭;它必须崩溃。我不想显示消息,写日志等。
DLL和应用程序(使用此DLL)是用DotNet 4编写的。
我能想到的快速解决方案是抛出异常而不是从方法返回值。但是,异常可以通过应用程序捕获,并且目的不会完全服务。
解决方法是在我的DLL中将自定义异常声明为internal
。但是,这也可以通过捕获Exception
类来绕过。
我能想到的一个肮脏的选择是编写一个代码(无限递归或其他东西),它将抛出StackOverflowException
。但我正在寻找更好的东西。
有没有办法抛出自定义的非捕获异常?
答案 0 :(得分:2)
Environment.FailFast
是要走的路,没有任何东西可以阻止你的应用程序关闭。
请记住,C#库可以轻松更改和重新编译,因此您可能也希望使用obfuscators。