我想从System.Web.Http.Filters.ActionFilterAttribute
调用一些 Controller 的方法(注意,是WebApi,而不是MVC)。
我找到了 ControllerDescriptor
对象,但找到了创建新 Controller 实例的唯一方法,而不是使用当前:
var controllerDescriptor = actionContext.ActionDescriptor.ControllerDescriptor;
var controller = (BaseApiController)controllerDescriptor.CreateController(actionContext.Request);
var companyId = controller.GetCompanyIdFromClaims();
是否可以获取 Controller 的当前实例?
最佳答案
您可以从操作上下文的 Controller 上下文中获取它,该上下文有一个
public IHttpController Controller { get; set; }
属性
HttpControllerContext.Controller Property
例如:
var controller = (MyControllerType)actionContext.ControllerContext.Controller;
关于c# - WebAPI : Get controller object from System. Web.Http.Filters.ActionFilterAttribute,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52294059/