Я с нетерпением жду возможности ввести RequestContext для каждого запроса в .Net Core. внутри коллекции услуг.
Кто-то пытался 8 лет. тому назад.
ASP.NET MVC инъекция за запрос
public interface IMvcDepency
{
string PathValue { get; set; }
}
public class FakeMvcDepency : IMvcDepency
{
public string PathValue { get; set; }
}
public class MvcDepency : IMvcDepency
{
public string PathValue { get; set; }
public MvcDepency(HttpRequest req)
{
PathValue = req.Path.Value;
}
}
И внедрить его куда-нибудь в автозагрузку следующим образом:
services.AddTransient<IMvcDepency, MvcDepency>(x => x.???);
или в OnActionExecuting, как показано ниже:
public override void OnActionExecuting(ActionExecutingContext actCtx)
{
MvcDepency mvcDepency = actCtx.HttpContext.RequestServices.GetService(typeof(IMvcDepency)) as MvcDepency;
mvcDepency = new MvcDepency(actCtx.HttpContext.Request);
actCtx.HttpContext.RequestServices.AddService(mvcDepency);// AddService method doesn't in exist
}
Текущая ошибка:
System.InvalidOperationException: «Не удается разрешить службу для типа« Microsoft.AspNetCore.Http.HttpRequest »при попытке активировать« CAWP.Api.Controllers.MvcDepency ». '