【发布时间】:2020-08-18 10:00:23
【问题描述】:
如何从控制器类型中获取路由?
例如从某种服务或其他东西获取MyTestController 和LoosedController 的路线。
XService.GetRoute<MyTestController>(); // output: /api/x/MyTestXService.GetRoute<LoosedController>(); // output: /api/loosed-items
[Route("api/x/[controller]")]
public abstract class MyControllerBase : ControllerBase {
[HttpGet("{id}")]
public ActionResult Get(int id) {
return Ok(id);
}
}
[Route("api/loosed-items")]
public class LoosedController : MyControllerBase {
}
public class MyTestController : MyControllerBase {
[HttpGet("action")]
public ActionResult FindThis() {
return Ok();
}
}
【问题讨论】:
-
@SSD 我只有控制器类型,我必须只使用类型。
-
您可以使用反射逻辑并检索您想要的内容。检查这个 - stackoverflow.com/questions/21583278/…
-
@SSD 没用,反射无法处理 routeTemplate 和
RouteAttribute继承
标签: c# asp.net-core routes