Helpers - компьютеры, интернет, программирование

Глобальный Asax против глобального фильтра

Мое приложение написано на MVC5.

Я заметил, что мой файл Global.Asax медленно заполняется кодом по мере роста приложения. В частности, в Application_EndRequest накапливается много кода, который выполняет такие действия, как ведение журнала, установка заголовков ответа и некоторые функции безопасности/аутентификации.

Я хочу знать, можно ли безопасно перемещать такие вещи в набор глобальных фильтров? Раньше я не использовал глобальные фильтры, но они кажутся удобным способом сделать такой код тестируемым и инкапсулированным способом.

So:

  • Является ли Global.asax Application_EndRequest прямым эквивалентом метода OnActionExecuted глобального фильтра?
  • На что следует обратить внимание при выборе между глобальным фильтром и Application_EndRequest?

Спасибо


Ответы:


1

Я думаю, это зависит от ваших потребностей. В порядке. Я постараюсь ответить на ваши вопросы:

  1. Является ли Global.asax Application_EndRequest прямым эквивалентом метода OnActionExecuted глобального фильтра?

Нет. Как следует из названия, Application_EndRequest вызывается в конце запроса, а OnActionExecuted глобального фильтра вызывается в соответствии с выполняемым контроллером.

  1. На что следует обратить внимание при выборе между глобальным фильтром и Application_EndRequest?

Зависит от ваших потребностей. Если вам нужно что-то сделать после завершения вызова каждого контроллера, то можете использовать фильтр, если вам нужно что-то сделать в конце запроса только один раз, просто поместите его в глобальный asax EndRequest.

Надеюсь, поможет.

15.09.2014
  • Пожалуйста, не могли бы вы привести пример чего-то после завершения вызова каждого контроллера и что-то в конце запроса один раз? 05.07.2021
  • Новые материалы

    Интуитивное понимание тензоров в машинном обучении
    Тензор является важной концепцией во многих научных областях, таких как математика, физика, обработка сигналов и компьютерное зрение, и это лишь некоторые из них. В математике тензор — это..

    Использование машинного обучения для диагностики болезни Альцгеймера, часть 4
    Маркеры семантической согласованности для ранней диагностики болезни Альцгеймера (arXiv) Автор: Давиде Колла , Маттео Дельсанто , Марко Агосто , Бенедетто Витиелло , Даниэле Паоло Радичони..

    Почему объяснимость так важна прямо сейчас?
    По мере того, как системы искусственного интеллекта и инструменты на основе машинного обучения распространяются в нашей повседневной жизни, как практики, так и критики все чаще заявляют о..

    Анимированный математический анализ
    Использование Manim для создания математических анимированных визуализаций Визуализация данных помогает понять скрытые закономерности в данных, которые невозможно визуализировать..

    Создание простого слайдера изображений с помощью JavaScript
    Узнайте, как создать базовый слайдер изображений с помощью HTML, CSS и JavaScript. Введение В этом уроке мы создадим удобный слайдер изображений, используя JavaScript, HTML и CSS. Ползунок..

    Создание базы данных с помощью супергероя «Python»
    В этом посте мы узнаем, как создать «базу данных SQLite с помощью модуля python sqlite3, создав простую функцию входа и регистрации. Готовы ли вы к этому путешествию? Если да , давайте приступим..

    ИИ для чайников: руководство для начинающих по пониманию будущего технологий
    Вы чувствуете, что остались позади в мире ИИ? Не волнуйтесь, вы не одиноки! Со всей этой шумихой вокруг искусственного интеллекта может быть трудно понять, с чего начать. Но не позволяйте сленгу..