TGViewer
StepOne | Степан Минин StepOne | Степан Минин @steponeit · 3.26K subscribers
Post #221 2.24K
ActionFilterAttribute


Это очень крутая штука, которую надо знать всем C# специалистам, разрабатывающим сервисы с помощью ASP NET Core.

Есть обычные фильтры, предоставляющие механизм построения пайплайна вокруг запроса (действия до и после, выполнение сквозного функционала и так далее).

Но простые операции для отдельных ручек можно реализовывать прямо в атрибутах, чтобы не тратить ресурсы на вычисление эндпоинта с помощью рефлексии.

Например, при необходимости проверять наличие определённого заголовка в запросе можно написать следующий атрибут.

[AttributeUsage(validOn: AttributeTargets.Method)]
public class HeaderRequiredAttribute : ActionFilterAttribute
{
private readonly string _headerName;

public HeaderRequiredAttribute(string headerName) =>
_headerName = headerName;

public override void OnActionExecuting(ActionExecutingContext context)
{
var httpContext = context.HttpContext;
var headerValue = httpContext.Request.Headers[_headerName].ToString();
if (string.IsNullOrWhiteSpace(headerValue))
throw new MissingRequiredHeaderException(_headerName);
}
}
Telegram StepOne Что такое cross-cutting concern? Это термин из АОП. Однако прежде чем разобраться с его значением, необходимо выяснить, что такое concern. Concern - это единица функциональности системы. Существует два вида функционала: 1. Ключевой функционал (core concern).…
  • 👍 14
  • 🤯 4
  • 🔥 3
  • 🤩 1
More from @steponeit
  1. Sep 29, 2026Рассказал как автоматизировал сборку лексера компилятором для своего языка программировани…
  2. Sep 28, 2026Пошутил про джавистов в прямом эфире 😅 Шарпизм победил окончательно и бесповоротно!
  3. Sep 27, 2026Post #860
  4. Sep 25, 2026Рассказал как я добавил в HydraScript объекты и методы без классов и сделал протоколы. Стр…
  5. Sep 22, 2026Post #858
  6. Sep 21, 2026Post #857
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →