我如何通过反射从方法获取路线(URL)

时间:2020-08-14 05:43:23

标签: c# asp.net .net

如何通过反射从方法获取路线(Url)。 从控制器和方法开始,如下所示:

[ApiController]
[Authorize]
[Route("api/events/[controller]")]
public class ApprovedWorksController : ControllerBase
{
    ...
    
    [HttpPost]
    public async Task<IEnumerable<ApprovedWorkResponse>> GetAsync(ApprovedWorkFilter filter)
    {
        ...
    }
}

收件人:

api/events/ApprovedWorks ...

2 个答案:

答案 0 :(得分:0)

我用它来解决问题:

var routeAttribute = controller.GetCustomAttribute(typeof(RouteAttribute));
      if (routeAttribute != null)
            Console.WriteLine(((RouteAttribute) routeAttribute).Template.Replace("/[controller]", "")
                                 + "/" + controller.Name.Replace("Controller", "")
                                 + "/" + methodInfo.Name);

答案 1 :(得分:0)

您不需要使用反射。您需要的关于 HTTP请求的所有信息都可以在Request中找到,以下是屏幕快照,供您查看实际操作:

enter image description here