Могу ли я найти контроллер в конвейере HttpSys? - PullRequest
1 голос
/ 22 сентября 2019

У нас есть сервисы, использующие HttpSys для самостоятельного хостинга http-слушателя.Мы используем их для размещения API с использованием MVC и реализации наших контроллеров с ControllerBase

Наш конвейер выглядит примерно так:

        app.UseMiddleware<LogRequests>();
        app.UseMiddleware<ValidateAuthentication>();
        app.UseMiddleware<FloodingProtector>();
        app.UseMiddleware<AdjustCors>();
        app.UseMiddleware<FilterOutput>();
        app.UseCors("AllowAll");
        app.UseMvc();

LogRequests - это наше собственное промежуточное ПО, где мы регистрируем информацию о запросе.

В этом промежуточном программном обеспечении мне хотелось бы понять, какой контроллер используется промежуточным программным обеспечением MVC для выполнения запроса.Контроллер имеет информацию о счетчике с метриками.Мне нужна эта информация в промежуточном программном обеспечении LogRequests для обновления счетчиков.

Можно ли получить от промежуточного программного обеспечения MVC информацию о том, какой контроллер использовался для выполнения запроса?

1 Ответ

0 голосов
/ 27 сентября 2019

В HttpContext есть свойство Items, которое можно использовать для передачи информации из контроллера обратно в конвейер.

В моем случае это нельзя было использовать, поскольку HttpContext недоступен в конструкторе, который являетсягде мне это было нужно.

Кроме этого, я не думаю, что есть какой-то хороший способ отправить информацию из контроллера в конвейер

...