Веб-интерфейс состоит из трех слоев, таких как Контроллер-> Фасад-> Хранилище. Большинство фасадных методов вызываются контроллером, кроме немногих. Эти несколько методов напрямую вызываются в методе Configure метода Startup.cs, как показано ниже:
serviceProvider.GetService<IElasticSearchFacade>().IndexAllMenuData();
Для обработки пользовательских исключений у меня есть CustomExceptionHandler, реализующий OnException IExceptionFilter в проекте веб-API. Он зарегистрирован для обработки исключения, генерируемого фасадом через контроллер, в ConfigureServices файла startup.cs следующим образом:
var option = services.AddControllers(
config =>
{
config.Filters.Add(typeof(CustomExceptionHandler));
});
Проблема заключается в том, что любое исключение, выбрасываемое методом Facade, вызываемым контроллером, обрабатывается указанным выше пользовательским обработчиком. , но не методом фасада, вызываемым Startup.cs. Любая работа вокруг?