【发布时间】:2020-07-10 03:13:23
【问题描述】:
我正在尝试在 ASP Net Core 控制器上使用带有泛型的抽象基类。在代码构建时,端点返回 404 并且不会出现在 swagger 文档中。
当我删除通用基类时,我可以在文档中看到控制器,但我必须复制并粘贴多个版本的控制器,这是我试图避免的。
对我缺少什么有什么建议吗?
这个控制器工作
[Route("/testconcrete/employees")]
public class TestController : ControllerBase
{
private readonly IUserService<TechDevsEmployee> _userService;
public TestController(IUserService<TechDevsEmployee> userService)
{
_userService = userService;
}
[HttpGet("{userId}")]
public async Task<ActionResult<User>> GetUserById([FromRoute] Guid userId)
{
var result = await _userService.FindById(userId);
return new OkObjectResult(result);
}
}
此控制器不工作 (404)
[Route("/testgeneric/employees")]
public class TechDevsEmployeeController<TechDevsEmployee> : UserController<TechDevsEmployee> where TechDevsEmployee : IUser, IClientEntity
{
public TechDevsEmployeeController(IUserService<TechDevsEmployee> userService) : base(userService)
{
}
}
基类
public abstract class UserController<T> : ControllerBase where T : IUser, IClientEntity
{
private readonly IUserService<T> _userService;
public UserController(IUserService<T> userService)
{
_userService = userService;
}
[HttpGet("{userId}")]
public async Task<ActionResult<User>> GetUserById([FromRoute] Guid userId)
{
var result = await _userService.FindById(userId);
return new OkObjectResult(result);
}
}
【问题讨论】:
标签: c# asp.net asp.net-core asp.net-web-api .net-core