首页 > 解决方案 > c# 从外部 dll 项目中捕获所有未处理的异常

问题描述

我正在尝试在 C# 中开发一个 dll 项目,该项目必须能够捕获引用它的项目的所有未处理异常。

这个想法是将此 dll 包含在任何类型的项目(mvc、web api、其他 dll 项目)中,并使用它们的整个调用堆栈捕获异常并将其登录到数据库中,以便能够重现它们。

问题是我不能使用,currentDomain.UnhandledException += new UnhandledExceptionEventHandler(MyHandler);因为我在一个 dll 项目中并且没有 main 方法。

另一方面,我如何在项目中注册这个 dll 以便能够捕捉到他们的错误?是否有必要在配置文件中注册一些东西?

标签: c#exceptiondllprojectunhandled

解决方案


我在这里的第一个想法是继续处理应用程序中未处理的异常并将异常传递给类库,您可以添加额外的参数来保存当前域中的信息,然后将其记录到文件/数据库中。

我的建议应该是使用某种外观/单例模式作为类库的唯一入口点,这将强制所有引用应用程序使用相同的逻辑


推荐阅读