Routing 从消息处理程序(不是控制器)内部获取控制器和操作?

Routing 从消息处理程序(不是控制器)内部获取控制器和操作?,routing,handler,message,Routing,Handler,Message,如何在WebAPI2框架4.5中的消息处理程序中从请求中提取控制器和操作名称?例如,这将获取完整的url:` uriurl=request.RequestUri; 字符串originalUrl=url.OriginalString 我正在使用属性路由` var config = request.GetConfiguration(); var routeData = config.Routes.GetRouteData(request); var controllerContext = new H

如何在WebAPI2框架4.5中的消息处理程序中从请求中提取控制器和操作名称?例如,这将获取完整的url:` uriurl=request.RequestUri; 字符串originalUrl=url.OriginalString

我正在使用属性路由`

var config = request.GetConfiguration();
var routeData = config.Routes.GetRouteData(request);
var controllerContext = new HttpControllerContext(config, routeData, request);

request.Properties[HttpPropertyKeys.HttpRouteDataKey] = routeData;
controllerContext.RouteData = routeData;

// get controller type
var controllerDescriptor = new DefaultHttpControllerSelector(config).SelectController(request);
var controllerName = controllerDescriptor.ControllerName;
controllerContext.ControllerDescriptor = controllerDescriptor;

// get action name
var actionMapping = new ApiControllerActionSelector().SelectAction(controllerContext);
var actionName = actionMapping.ActionName;
这一切都归功于他