【发布时间】:2019-02-12 14:37:16
【问题描述】:
我期待在 .Net Core 中为每个请求注入 RequestContext。在服务集合中。
有人尝试了 8 年。前。 ASP.NET MVC inject per request
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:“尝试激活“CAWP.Api.Controllers.MvcDepency”时,无法解析“Microsoft.AspNetCore.Http.HttpRequest”类型的服务。”
【问题讨论】:
-
你的意思是这样的? strathweb.com/2016/12/…
标签: c# unit-testing .net-core tdd moq