C# 正在从RouteCollectionRoute获取路由列表

C# 正在从RouteCollectionRoute获取路由列表,c#,linq,routing,C#,Linq,Routing,我想从RequestContext.RouteData.Routes获取所有路由,其类型为System.Web.Mvc.Routing.RouteCollectionRoute 在调试器中打开时,我有一个选项“结果视图”,为我提供一个System.Web.Routing.Route列表,其中包含我需要的信息 如何在代码中获取此列表(或数组)?我尝试了foreach,还查看了是否有任何LinQ方法可以帮助我(.ToList等),但没有成功。在路由数据中没有路由之类的东西 RouteData仅包含带

我想从
RequestContext.RouteData.Routes
获取所有路由,其类型为
System.Web.Mvc.Routing.RouteCollectionRoute

在调试器中打开时,我有一个选项“结果视图”,为我提供一个
System.Web.Routing.Route
列表,其中包含我需要的信息


如何在代码中获取此列表(或数组)?我尝试了foreach,还查看了是否有任何LinQ方法可以帮助我(.ToList等),但没有成功。

路由数据中没有
路由
之类的东西

RouteData
仅包含带有URL参数的字典。也许这不是你想要的

但您可以通过这种方式轻松获得所有路线:

var routeList = System.Web.Routing.RouteTable.Routes.ToList();

RouteData
中没有
Routes
这样的东西

RouteData
仅包含带有URL参数的字典。也许这不是你想要的

但您可以通过这种方式轻松获得所有路线:

var routeList = System.Web.Routing.RouteTable.Routes.ToList();

FWIW,这对我不起作用,因为我试图获取URL清单。通常ApiExplorer可以很好地实现这一点,但是我们使用自定义模型绑定器,而ApiExplorer似乎不支持这一点。更多信息请点击此处:

无论如何,我能够使用以下代码获取API URL清单:

    var httpConfiguration = Request.GetConfiguration(); //For reference

    var routes = httpConfiguration.Routes
            .Select(route => (IEnumerable)route)
            .Single(route => route!=null)
            .Cast<HttpRoute>();

    var manifest = routes
            .Select(route => route.RouteTemplate)
            .ToList();
var httpConfiguration=Request.GetConfiguration()//供参考
var routes=httpConfiguration.routes
.选择(路由=>(IEnumerable)路由)
.Single(路由=>route!=null)
.Cast();
var manifest=routes
.Select(route=>route.RouteTemplate)
.ToList();

难看,但不管是好是坏,它都有效。

FWIW,这对我不起作用,因为我试图获取URL清单。通常ApiExplorer可以很好地实现这一点,但是我们使用自定义模型绑定器,而ApiExplorer似乎不支持这一点。更多信息请点击此处:

无论如何,我能够使用以下代码获取API URL清单:

    var httpConfiguration = Request.GetConfiguration(); //For reference

    var routes = httpConfiguration.Routes
            .Select(route => (IEnumerable)route)
            .Single(route => route!=null)
            .Cast<HttpRoute>();

    var manifest = routes
            .Select(route => route.RouteTemplate)
            .ToList();
var httpConfiguration=Request.GetConfiguration()//供参考
var routes=httpConfiguration.routes
.选择(路由=>(IEnumerable)路由)
.Single(路由=>route!=null)
.Cast();
var manifest=routes
.Select(route=>route.RouteTemplate)
.ToList();

难看,但不管是好是坏,它都有效。

这正是我所需要的。谢谢这正是我需要的。谢谢