【发布时间】:2017-09-18 01:48:48
【问题描述】:
我正在尝试实现一个简单的依赖项(在 ASP.NET Core 中),如下所示:
public partial class BaseController : Controller
{
public new ITempDataDictionary TempData { get; private set; }
public override void OnActionExecuting(ActionExecutingContext context)
{
base.OnActionExecuting(context);
//preparação da tempdata
this.TempData = new TempDataDictionary(HttpContext); //todo: DI?
this.TempData.Load();
}
}
}
问题在于 TempDataDictionary 取决于此控制器中存在的 HttpContext。
由于ServiceLocator 在启动时不知道HttpContext,如何在 DI 中实现该场景?
这样吗?
services.AddScoped(); //??????
但是如果它只存在于控制器中,我在哪里填写构造函数参数HttpContext?
【问题讨论】:
-
防止让您的应用程序组件直接依赖于
HttpContext,如here 所述
标签: c# dependency-injection asp.net-core asp.net-core-mvc