是否可以找到 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
之后但在任何 AuthenticationFilter
、AuthorizationFilter
或 ActionFilter
.
因此,如果您需要知道哪个控制器将处理请求,最好的选择是在 ActionFilter
(或者可能是 AuthorizationFilter
中实现您的逻辑,因此您可以跳过 ModelBinding
完全如果请求无效)。
在这里您可以使用 HttpActionContext
参数的 ControllerContext
属性 访问控制器数据。
我们实施了 api 服务。
我们在控制器中使用属性路由 (config.MapHttpAttributeRoutes();
)。
我正在尝试编写一个处理程序,它需要为某些特定的 class 控制器工作。
是否可以得到实际控制者class来处理
中的请求protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
{
//...
}
共 DelegatingHandler
?
目前我可以使用它们的路径过滤它们。
如 ASP.NET Web API 2: HTTP message lifecycle 文档中所示,控制器类型选择和创建是在 在 管道中执行任何 DelegatingHandler
之后但在任何 AuthenticationFilter
、AuthorizationFilter
或 ActionFilter
.
因此,如果您需要知道哪个控制器将处理请求,最好的选择是在 ActionFilter
(或者可能是 AuthorizationFilter
中实现您的逻辑,因此您可以跳过 ModelBinding
完全如果请求无效)。
在这里您可以使用 HttpActionContext
参数的 ControllerContext
属性 访问控制器数据。