Веб-API: как прочитать атрибут действия и параметры из HttpContext
В обычном классе мне нужно прочитать следующее из HttpContext
:
Контроллер и название действия
Атрибут действия (я мог получить это через
HttpActionContext.ActionDescriptor.GetCustomAttributes<type>()
но здесь у меня нетHttpActionContext
- У меня есть толькоHttpContext
)Прочитайте аргумент (как
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>();
}