【发布时间】:2021-10-02 09:58:28
【问题描述】:
我正在尝试从我的应用程序中获取所有可访问 url 的概览。我有一个包含 2 个项目的应用程序(一个是默认项目,另一个是 Razor 类库)。
在两个项目中都定义了 Razor 页面,当我使用 AspNetCore.RouteAnalyzer(如在 Get all registered routes in ASP.NET Core 中看到的)时,我可以大致了解所有可访问的路线。但我想知道路线的程序集、项目或命名空间。我怎样才能做到这一点?
2021 年 7 月 28 日 - 在 abdusco 的帮助下更新:
可从 Asp.Net Core 6.0 访问此信息:https://github.com/dotnet/aspnetcore/issues/34759
【问题讨论】:
-
Here 可以看到
ActionDescriptor将由 ASP.NET Core 提供。通过_e.ControllerDescriptor.ControllerType.Assembly你应该得到程序集。但是您要么必须复制代码并自行实现,要么要求维护者进行更改 -
Tnx mu88,我复制了自定义的代码。但是我得到了错误
_e.ControllerDescriptor.ControllerType.Assembly: error CS1061: 'ActionDescriptor' does not contain a definition for 'ControllerDescriptor' and no accessible extension method 'ControllerDescriptor' accepting a first argument of type 'ActionDescriptor' could be found (are you missing a using directive or an assembly reference?)。我错过了什么? -
啊,是的,我明白了:
ControllerDescriptor不再存在于 ASP.NET Core 中。你能看看_e.BoundProperties和_e.Properties是否包含有用的东西吗? -
参见:stackoverflow.com/questions/28435734/… 并按控制器/剃须刀页面组件过滤端点
-
@CribAd 我问过 ASP.NET Core 维护者,这似乎只能在 ASP.NET Core 6 中实现:github.com/dotnet/aspnetcore/issues/34759
标签: c# asp.net-core razor-pages