В ASP. Net Core 3.1 проекте у меня есть «базовый» контроллер, который я наследую от ControllerBase
, и он выглядит так:
[Authorize]
public abstract class BaseController : ControllerBase
{
protected readonly IMapper mapper;
protected readonly ILogger logger;
protected BaseController(
IMapper mapper,
ILogger logger)
{
this.mapper = mapper;
this.logger = logger;
var ok = Request.HttpContext.Items.TryGetValue("value", out object value);
}
}
А потом мои контроллеры, которые наследовать от него, например:
[Route("api/[Controller]"]
public class MyController : BaseController
{
public MyController(
IMapper mapper,
ILogger<MyController> logger,
/*...some other services injected here...*/) : base(mapper, logger)
{ }
}
У меня есть промежуточное программное обеспечение, которое устанавливает элемент «value» в коллекции Items
заголовка. Значение устанавливается в соответствии с ожиданиями.
Однако, как только я нажму на конструктор базового контроллера, все свойства будут нулевыми (Request, HttpConext, ControllerContext и др. c).
Приведенная выше настройка прекрасно работала с WebApi2.
Что мне здесь не хватает?