Sobes.tech
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();
}

Такой подход помогает централизованно управлять поведением приложения без дублирования кода в каждом методе контроллера.