WebAPI: получение объекта контроллера из System.Web.Http.Filters.ActionFilterAttribute. - PullRequest
0 голосов
/ 12 сентября 2018

Я хочу вызвать метод некоторого контроллера из System.Web.Http.Filters.ActionFilterAttribute (обратите внимание, это WebApi, а не MVC).

Я нашел ControllerDescriptor объект, но нашел единственный способ создать новый экземпляр контроллера, не используя current:

var controllerDescriptor = actionContext.ActionDescriptor.ControllerDescriptor;

var controller = (BaseApiController)controllerDescriptor.CreateController(actionContext.Request);
var companyId = controller.GetCompanyIdFromClaims();

возможно ли получить текущий экземпляр контроллера?

1 Ответ

0 голосов
/ 12 сентября 2018

Вы получаете его из контекста контроллера контекста действия, который имеет

public IHttpController Controller { get; set; }

недвижимость

Свойство HttpControllerContext.Controller

Например:

var controller = (MyControllerType)actionContext.ControllerContext.Controller;
...