WebAPI:从System.Web.Http.Filters.ActionFilterAttribute获取控制器对象



我想从System.Web.Http.Filters.ActionFilterAttribute调用某个控制器的方法(注意,它是WebApi,而不是MVC(。

我找到了ControllerDescriptor对象,但只找到了创建新控制器实例的方法,而不是使用当前:

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

是否可以获取控制器的当前实例?

您可以从操作上下文的控制器上下文中获取它,该上下文具有

public IHttpController Controller { get; set; }

财产

HttpControllerContext.Controller 属性

例如:

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

相关内容

  • 没有找到相关文章

最新更新