是否可以找到 Controller 的 class ,它将处理来自其在 Handler 中的路径的请求

Is it possible to find the class of Controller which will handle the request from its path in Handler

我们实施了 api 服务。

我们在控制器中使用属性路由 (config.MapHttpAttributeRoutes();)。

我正在尝试编写一个处理程序,它需要为某些特定的 class 控制器工作。

是否可以得到实际控制者class来处理

中的请求
protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
{
    //...
}

DelegatingHandler?

目前我可以使用它们的路径过滤它们。

ASP.NET Web API 2: HTTP message lifecycle 文档中所示,控制器类型选择和创建是在 管道中执行任何 DelegatingHandler 之后但在任何 AuthenticationFilterAuthorizationFilterActionFilter.

因此,如果您需要知道哪个控制器将处理请求,最好的选择是在 ActionFilter(或者可能是 AuthorizationFilter 中实现您的逻辑,因此您可以跳过 ModelBinding 完全如果请求无效)。

在这里您可以使用 HttpActionContext 参数的 ControllerContext 属性 访问控制器数据。