Back to questions
Junior — Middle
62
Имели ли вы практический опыт использования Action Filter в своих проектах?
Answer from AI
sobes.tech AI
Action Filter в C# (например, в ASP.NET MVC) — это механизм, позволяющий выполнять код до и после выполнения действия контроллера. Он используется для кросс-срезных задач, таких как логирование, проверка авторизации, кэширование или изменение результата.
Практический опыт использования Action Filter обычно включает:
- Создание собственных фильтров, наследуя от
ActionFilterAttribute. - Переопределение методов
OnActionExecutingиOnActionExecutedдля выполнения логики до и после действия. - Применение фильтров к контроллерам или отдельным методам через атрибуты.
Пример простого Action Filter:
public class LogActionFilter : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext context)
{
// Логируем начало выполнения действия
Console.WriteLine($"Начало действия: {context.ActionDescriptor.DisplayName}");
}
public override void OnActionExecuted(ActionExecutedContext context)
{
// Логируем завершение действия
Console.WriteLine($"Завершение действия: {context.ActionDescriptor.DisplayName}");
}
}
// Использование:
[LogActionFilter]
public IActionResult Index()
{
return View();
}
Такой подход помогает централизованно управлять поведением приложения без дублирования кода в каждом методе контроллера.