ASP.NET Core支持基于路由参数的参数注入,只需使用标注有[FromRoute]属性的参数。下面是一个示例:
[Route("api/[controller]")]
[ApiController]
public class UserController : ControllerBase
{
private readonly IUserService _userService;
public UserController([FromServices] IUserService userService)
{
_userService = userService;
}
[HttpGet("{id}")]
public async Task> GetUserById([FromRoute] int id)
{
var user = await _userService.GetUserById(id);
if (user == null)
{
return NotFound();
}
return user;
}
}
在上面的例子中,通过在构造函数中使用[FromServices]标记来注入依赖项,而在方法参数中使用[FromRoute]标记来注入路由参数。这可以简化您的代码,使其更易于维护。