Веб-API: как прочитать атрибут действия и параметры из HttpContext

В обычном классе мне нужно прочитать следующее из HttpContext:

  1. Контроллер и название действия

  2. Атрибут действия (я мог получить это через HttpActionContext.ActionDescriptor.GetCustomAttributes<type>() но здесь у меня нет HttpActionContext - У меня есть только HttpContext)

  3. Прочитайте аргумент (как actionContext.ActionArguments["paramName"], но опять же - у меня есть только HttpContext)

Это не фильтр действий и не класс контроллера. Но я могу получить доступ HttpContext,

0 ответов

Из ядра asp.net 3.0 /questions/36151424/kak-prochitat-atributyi-metoda-dejstviya-v-aspnet-core-mvc/55292077#55292077

public async Task Invoke(HttpContext context)
{
    // Get the enpoint which is executing (asp.net core 3.0 only)
    var executingEnpoint = context.GetEndpoint();

    // Get attributes on the executing action method and it's defining controller class
    var attributes = executingEnpoint.Metadata.OfType<MyCustomAttribute>();

    await next(context);

    // Get the enpoint which was executed (asp.net core 2.2 possible after call to await next(context))
    var executingEnpoint2 = context.GetEndpoint();

    // Get attributes on the executing action method and it's defining controller class
    var attributes2 = executingEnpoint.Metadata.OfType<MyCustomAttribute>();
}
Другие вопросы по тегам