c# Поймать все необработанные исключения из внешнего проекта DLL - PullRequest
0 голосов
/ 22 января 2020

Я пытаюсь разработать dll-проект в C#, который должен быть в состоянии отловить все необработанные исключения из проекта, который ссылается на него.

Идея состоит в том, чтобы включить эту dll в любой тип проекта (mvc, web api, другие проекты dll) и перехватывает и регистрирует в БД исключения со всеми стеками вызовов, чтобы иметь возможность их воспроизводить.

Проблема в том, что я не могу использовать currentDomain.UnhandledException += new UnhandledExceptionEventHandler(MyHandler); потому что я нахожусь в проекте DLL и нет основного метода.

С другой стороны, как я могу зарегистрировать эту DLL в проектах, чтобы иметь возможность отлавливать их ошибки? Нужно ли что-то регистрировать в конфигурационном файле?

1 Ответ

0 голосов
/ 22 января 2020

Моей первой мыслью здесь будет сохранение обработчика для необработанного исключения в вашем приложении и передача исключения в библиотеку классов, вы можете добавить дополнительные параметры, которые хранят информацию из вашего текущего домена, которая затем записывается в файл / db.

Моя рекомендация - использовать фасад / singleton в качестве точки входа only в вашу библиотеку классов, которая будет заставить все ссылочные приложения использовать один и тот же лог c

...