c# - 我如何通过反射从方法中获取路由(Url)
问题描述
我如何通过反射从方法中获取路由(Url)。从控制器和方法,像这样:
[ApiController]
[Authorize]
[Route("api/events/[controller]")]
public class ApprovedWorksController : ControllerBase
{
...
[HttpPost]
public async Task<IEnumerable<ApprovedWorkResponse>> GetAsync(ApprovedWorkFilter filter)
{
...
}
}
至:
api/events/ApprovedWorks ...
解决方案
我用这个来解决问题:
var routeAttribute = controller.GetCustomAttribute(typeof(RouteAttribute));
if (routeAttribute != null)
Console.WriteLine(((RouteAttribute) routeAttribute).Template.Replace("/[controller]", "")
+ "/" + controller.Name.Replace("Controller", "")
+ "/" + methodInfo.Name);
推荐阅读
- compiler-construction - Lexer 是否应该即时返回令牌列表或令牌
- oracle - ORACLE 数据库的初始化在单元测试中
- python - LSTM 自动编码器噪声重建
- sql - 在日期时间范围之间添加行
- amazon-web-services - AWS Athena WAF 日志
- python - 在 x 时间后中断 while 循环,但在同一级别继续 for 循环
- android - 在 Android 通知中禁用声音(不改变视觉行为)
- swiftui - 自定义导航栏 SwiftUI 上仅显示后退按钮
- elasticsearch - 索引具有通配符时的弹性搜索
- javascript - 动态计算 2 个输入的总和 - Javascript