我想在我的Web Api项目中访问自定义操作过滤器内的RouteTemplate。
我已在任何操作之前注册了要执行的自定义操作过滤器,如下所示。
public class AuthorizationFilter : ActionFilterAttribute
{
public override void OnActionExecuting(HttpActionContext filterContext)
{
}
}
如果您可以在下图中看到我可以从Quick Watch内部过滤器访问路径模板。但是如果我编写相同的代码,则会抛出错误'System.Web.Http.WebHost.Routing.HttpWebRoute' is inaccessible due to its protection level
是否有其他方式可以访问路线模板
使用的属性:(((System.Web.Http.WebHost.Routing.HttpWebRoute)(HttpContext.Current.Request.RequestContext.RouteData.Route)).HttpRoute).RouteTemplate
答案 0 :(得分:1)
这就是它的工作原理。
public override void OnActionExecuting(HttpActionContext filterContext)
{
if (Settings.GetKeyValue<string>("EnableAuthorization") == "Enabled")
{
var routeTemplate = filterContext.Request.GetRouteData().Route.RouteTemplate;
}
}