我想从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;